From fe1a9990514fb5fb27333b64ef8adfe1c9c9a31c Mon Sep 17 00:00:00 2001 From: Rodrigo Aguiar Vidal Cananea Date: Thu, 4 Dec 2025 00:36:44 -0300 Subject: [PATCH 01/20] Melhorado ConsultaTributacao para retornar dados de forma generica --- .../swconsultoria/nfe/ConsultaTributacao.java | 419 ++++++++++++++---- 1 file changed, 326 insertions(+), 93 deletions(-) diff --git a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java index 5dc60183..bd26338a 100644 --- a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java +++ b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java @@ -6,172 +6,406 @@ import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe; import br.com.swconsultoria.nfe.exception.NfeException; import br.com.swconsultoria.nfe.util.ConfiguracoesUtil; +import br.com.swconsultoria.nfe. util.ObjetoUtil; import br.com.swconsultoria.nfe.util.WebServiceUtil; -import br.com.swconsultoria.nfe.dto.CstDTO; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.core.type. TypeReference; +import com.fasterxml.jackson.databind. DeserializationFeature; +import com.fasterxml.jackson. databind.ObjectMapper; +import lombok.extern.java.Log; import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.HttpStatus; +import org.apache. commons.httpclient.methods. GetMethod; -import javax.net.ssl.SSLSocketFactory; -import javax.net.ssl.SSLContext; import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; +import java. io.IOException; +import java. io.InputStream; import java.net.URL; import java.nio.charset.StandardCharsets; -import java.util.List; +import java.util.HashMap; +import java.util.Map; /** - * Serviço para consulta de classTrib (CFF). + * Classe responsável por realizar consultas REST a serviços externos com certificado digital. + * + * Oferece três modos de uso: + * 1. Retorno direto do JSON string (método getJson) + * 2. Conversão genérica para qualquer tipo de objeto (método get com Class) + * 3. Conversão genérica com TypeReference para tipos complexos (método get com TypeReference) + * + * Exemplos de uso: * - * Nesta versão: o método getClassTrib(ConfiguracoesNfe) aceita somente a ConfiguracoesNfe. - * Internamente tenta, na ordem: - * 1) obter um HttpClient via CertificadoService.getHttpsClient(...) e usá-lo (reaproveita StubUtil/CertificadoService); - * 2) tentar obter SSLSocketFactory/SSLContext via reflexão em CertificadoService (se disponível); - * 3) tentar obter SSLSocketFactory/SSLContext do próprio objeto Certificado (se disponível); - * 4) se nada for possível, lançar IllegalStateException explicando o que chamar. + * // 1. Obter JSON bruto + * String json = ConsultaTributacao.getJson(config, "CFF", "classTrib"); * - * Objetivo: o usuário só precisa passar a ConfiguracoesNfe (como em outras APIs da lib). + * // 2. Converter para List + * List lista = ConsultaTributacao.get(config, "CFF", "classTrib", + * new TypeReference>() {}); + * + * // 3. Converter para objeto único + * MeuDTO objeto = ConsultaTributacao.get(config, "CFF", "classTrib", MeuDTO.class); + * + * // 4. Com parâmetros query + * Map params = new HashMap<>(); + * params.put("Cst", "00"); + * String json = ConsultaTributacao. getJson(config, "CFF", "classTrib", params); + * + * @author Samuel Oliveira - samuel@swconsultoria.com. br */ +@Log public class ConsultaTributacao { - private static final ObjectMapper MAPPER = new ObjectMapper(); + private ConsultaTributacao() {} + + private static final ObjectMapper MAPPER = createObjectMapper(); + + /** + * Cria ObjectMapper configurado para ser tolerante a mudanças no JSON. + * Propriedades desconhecidas ou faltantes não causam erro de deserialização. + */ + private static ObjectMapper createObjectMapper() { + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature. FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false); + mapper.configure(DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES, false); + mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true); + mapper.configure(DeserializationFeature. ACCEPT_SINGLE_VALUE_AS_ARRAY, true); + return mapper; + } /** - * Conveniência: o usuário passa apenas ConfiguracoesNfe. - * Tenta primeiro criar e usar o HttpClient via CertificadoService (mais robusto e consistente com StubUtil), - * fazendo fallback para SSLSocketFactory quando necessário. + * Executa requisição HTTP GET e retorna o JSON string bruto. + * + * @param config Configurações da NFe contendo certificado digital + * @param section Seção no arquivo WebServicesNfe.ini (ex: "CFF") + * @param key Chave da URL na seção (ex: "classTrib") + * @return String contendo o JSON de resposta + * @throws NfeException Se houver erro de configuração ou certificado + * @throws IOException Se houver erro de comunicação HTTP */ - public static List getClassTrib(ConfiguracoesNfe config) throws NfeException, IOException { - // inicializa configurações e certificado (lança NfeException se algo inválido) + public static String getJson(ConfiguracoesNfe config, String section, String key) + throws NfeException, IOException { + return getJson(config, section, key, null); + } + + /** + * Executa requisição HTTP GET com parâmetros de query e retorna o JSON string bruto. + * + * @param config Configurações da NFe contendo certificado digital + * @param section Seção no arquivo WebServicesNfe. ini (ex: "CFF") + * @param key Chave da URL na seção (ex: "classTrib") + * @param queryParams Mapa com parâmetros de query (ex: {"Cst": "00"}) + * @return String contendo o JSON de resposta + * @throws NfeException Se houver erro de configuração ou certificado + * @throws IOException Se houver erro de comunicação HTTP + */ + public static String getJson(ConfiguracoesNfe config, String section, String key, Map queryParams) + throws NfeException, IOException { ConfiguracoesUtil.iniciaConfiguracoes(config); - String url = WebServiceUtil.getCustomUrl(config, "CFF", "classTrib"); + String urlBase = WebServiceUtil.getCustomUrl(config, section, key); + String url = buildUrlWithParams(urlBase, queryParams); + Certificado certificado = config.getCertificado(); + if (certificado == null) { + throw new NfeException("Certificado digital não configurado"); + } - // 1) Tentar criar HttpClient via CertificadoService (recomendado — igual ao StubUtil) - if (certificado != null) { - try { - HttpClient httpClient; - InputStream cacertStream = config.getCacert(); - if (cacertStream != null) { - // usa overload que aceita InputStream (se disponível na Java_Certificado) - httpClient = CertificadoService.getHttpsClient(certificado, url, cacertStream); - } else { - httpClient = CertificadoService.getHttpsClient(certificado, url); - } - if (httpClient != null) { - return getClassTrib(config, httpClient); - } - } catch (CertificadoException ce) { - // falha ao montar HttpClient — tentaremos fallback abaixo - } catch (Throwable t) { - // caso CertificadoService não tenha a assinatura esperada ou outra falha, tentar fallback + log.info("[ConsultaTributacao] Requisitando: " + url); + + try { + HttpClient httpClient = createHttpClient(config, certificado, url); + if (httpClient != null) { + return executeRequestWithHttpClient(httpClient, url); } + } catch (CertificadoException e) { + log.warning("[ConsultaTributacao] Falha ao criar HttpClient, tentando fallback: " + e.getMessage()); } - // 2) Tentar obter SSLSocketFactory via CertificadoService (reflexão) ou via Certificado SSLSocketFactory sslFactory = tryResolveSslSocketFactory(config); if (sslFactory != null) { - return getClassTrib(config, sslFactory); + return executeRequestWithSslFactory(sslFactory, url); + } + + throw new NfeException( + "Não foi possível configurar SSL/TLS para a requisição. " + + "Verifique se o certificado está corretamente configurado." + ); + } + + /** + * Executa requisição HTTP GET e converte o JSON para o tipo especificado. + * Método genérico que aceita qualquer classe DTO. + * + * Exemplo de uso: + *
+     * MeuDTO objeto = ConsultaTributacao.get(config, "CFF", "classTrib", MeuDTO.class);
+     * 
+ * + * @param Tipo do objeto de retorno + * @param config Configurações da NFe contendo certificado digital + * @param section Seção no arquivo WebServicesNfe.ini + * @param key Chave da URL na seção + * @param clazz Classe do objeto de destino + * @return Objeto do tipo T com os dados deserializados do JSON + * @throws NfeException Se houver erro de configuração, certificado ou conversão + * @throws IOException Se houver erro de comunicação HTTP + */ + public static T get(ConfiguracoesNfe config, String section, String key, Class clazz) + throws NfeException, IOException { + String json = getJson(config, section, key); + return convertJsonToObject(json, clazz); + } + + /** + * Executa requisição HTTP GET com parâmetros e converte o JSON para o tipo especificado. + * + * Exemplo de uso: + *
+     * Map params = new HashMap<>();
+     * params.put("Cst", "00");
+     * MeuDTO objeto = ConsultaTributacao.get(config, "CFF", "classTrib", params, MeuDTO.class);
+     * 
+ * + * @param Tipo do objeto de retorno + * @param config Configurações da NFe + * @param section Seção no arquivo INI + * @param key Chave da URL + * @param queryParams Parâmetros de query + * @param clazz Classe do objeto de destino + * @return Objeto do tipo T deserializado + * @throws NfeException Se houver erro + * @throws IOException Se houver erro de I/O + */ + public static T get(ConfiguracoesNfe config, String section, String key, + Map queryParams, Class clazz) + throws NfeException, IOException { + String json = getJson(config, section, key, queryParams); + return convertJsonToObject(json, clazz); + } + + /** + * Executa requisição HTTP GET e converte o JSON para tipos complexos (ex: List, Map). + * Usa TypeReference do Jackson para preservar informações de tipo genérico. + * + * Exemplo de uso: + *
+     * List lista = ConsultaTributacao.get(config, "CFF", "classTrib",
+     *     new TypeReference>() {});
+     *
+     * Map mapa = ConsultaTributacao.get(config, "CFF", "classTrib",
+     *     new TypeReference>() {});
+     * 
+ * + * @param Tipo do objeto de retorno + * @param config Configurações da NFe + * @param section Seção no arquivo INI + * @param key Chave da URL + * @param typeRef TypeReference com o tipo genérico desejado + * @return Objeto do tipo T deserializado + * @throws NfeException Se houver erro + * @throws IOException Se houver erro de I/O + */ + public static T get(ConfiguracoesNfe config, String section, String key, TypeReference typeRef) + throws NfeException, IOException { + String json = getJson(config, section, key); + return convertJsonToObject(json, typeRef); + } + + /** + * Executa requisição HTTP GET com parâmetros e converte para tipos complexos. + * + * @param Tipo do objeto de retorno + * @param config Configurações da NFe + * @param section Seção no arquivo INI + * @param key Chave da URL + * @param queryParams Parâmetros de query + * @param typeRef TypeReference com o tipo genérico + * @return Objeto do tipo T deserializado + * @throws NfeException Se houver erro + * @throws IOException Se houver erro de I/O + */ + public static T get(ConfiguracoesNfe config, String section, String key, + Map queryParams, TypeReference typeRef) + throws NfeException, IOException { + String json = getJson(config, section, key, queryParams); + return convertJsonToObject(json, typeRef); + } + + /** + * Converte JSON string para objeto do tipo especificado. + * Propriedades desconhecidas no JSON são ignoradas automaticamente. + * + * @param Tipo do objeto de retorno + * @param json String JSON a ser convertida + * @param clazz Classe do objeto de destino + * @return Objeto deserializado + * @throws NfeException Se houver erro na conversão + */ + private static T convertJsonToObject(String json, Class clazz) throws NfeException { + try { + log.info("[ConsultaTributacao] Convertendo JSON para " + clazz.getSimpleName()); + return MAPPER.readValue(json, clazz); + } catch (IOException e) { + log.severe("[ConsultaTributacao] Erro ao converter JSON: " + e.getMessage()); + throw new NfeException("Erro ao processar resposta JSON: " + e.getMessage(), e); + } + } + + /** + * Converte JSON string para tipo complexo usando TypeReference. + * + * @param Tipo do objeto de retorno + * @param json String JSON a ser convertida + * @param typeRef TypeReference com informações de tipo genérico + * @return Objeto deserializado + * @throws NfeException Se houver erro na conversão + */ + private static T convertJsonToObject(String json, TypeReference typeRef) throws NfeException { + try { + log.info("[ConsultaTributacao] Convertendo JSON para tipo complexo"); + return MAPPER.readValue(json, typeRef); + } catch (IOException e) { + log.severe("[ConsultaTributacao] Erro ao converter JSON: " + e. getMessage()); + throw new NfeException("Erro ao processar resposta JSON: " + e.getMessage(), e); + } + } + + /** + * Constrói URL completa com parâmetros de query. + * + * @param baseUrl URL base + * @param queryParams Mapa de parâmetros (pode ser null) + * @return URL completa com query string + */ + private static String buildUrlWithParams(String baseUrl, Map queryParams) { + if (queryParams == null || queryParams.isEmpty()) { + return baseUrl; } - // 3) Não foi possível resolver automaticamente: instruir usuário a passar HttpClient ou habilitar multithreading - throw new IllegalStateException("Não foi possível resolver mecanismo SSL automaticamente. " + - "Passe um HttpClient criado por CertificadoService.getHttpsClient(certificado,url) e chame getClassTrib(config, httpClient), " + - "ou habilite modo multithreading no certificado se preferir que a biblioteca gere o HttpClient automaticamente."); + StringBuilder url = new StringBuilder(baseUrl); + boolean first = ! baseUrl.contains("?"); + + for (Map.Entry entry : queryParams.entrySet()) { + if (entry.getValue() != null && !entry.getValue().trim().isEmpty()) { + url.append(first ? "?" : "&"); + url.append(entry.getKey()).append("=").append(entry.getValue()); + first = false; + } + } + + return url.toString(); + } + + /** + * Cria HttpClient configurado com certificado digital. + */ + private static HttpClient createHttpClient(ConfiguracoesNfe config, Certificado certificado, String url) + throws CertificadoException { + if (ObjetoUtil.verifica(config.getCacert()). isPresent()) { + return CertificadoService.getHttpsClient(certificado, url, config.getCacert()); + } else { + return CertificadoService.getHttpsClient(certificado, url); + } } /** - * Implementação usando Apache HttpClient (reaproveita CertificadoService/StubUtil). + * Executa requisição HTTP GET usando Apache HttpClient. */ - public static List getClassTrib(ConfiguracoesNfe config, HttpClient httpClient) throws IOException, NfeException { - String url = WebServiceUtil.getCustomUrl(config, "CFF", "classTrib"); + private static String executeRequestWithHttpClient(HttpClient httpClient, String url) throws IOException { + GetMethod getMethod = new GetMethod(url); - GetMethod get = new GetMethod(url); - get.addRequestHeader("Accept", "application/json"); try { - int status = httpClient.executeMethod(get); - if (status != 200) { - InputStream err = get.getResponseBodyAsStream(); - String body = toString(err); - throw new IOException("HTTP " + status + " -> " + body); + getMethod.setRequestHeader("Accept", "application/json"); + getMethod.setRequestHeader("Content-Type", "application/json; charset=UTF-8"); + + int statusCode = httpClient.executeMethod(getMethod); + log.info("[ConsultaTributacao] Status HTTP: " + statusCode); + + if (statusCode != HttpStatus.SC_OK) { + String errorBody = inputStreamToString(getMethod.getResponseBodyAsStream()); + log.severe("[ConsultaTributacao] Erro HTTP " + statusCode + ": " + errorBody); + throw new IOException("Erro HTTP " + statusCode + ": " + errorBody); } - try (InputStream responseStream = new BufferedInputStream(get.getResponseBodyAsStream())) { - return MAPPER.readValue(responseStream, new TypeReference>() { - }); + + try (InputStream responseStream = new BufferedInputStream(getMethod.getResponseBodyAsStream())) { + return inputStreamToString(responseStream); } + } finally { - get.releaseConnection(); + getMethod.releaseConnection(); } } /** - * Implementação usando SSLSocketFactory (fallback). + * Executa requisição usando SSLSocketFactory (fallback). */ - public static List getClassTrib(ConfiguracoesNfe config, SSLSocketFactory sslFactory) throws IOException, NfeException { - String url = WebServiceUtil.getCustomUrl(config, "CFF", "classTrib"); - + private static String executeRequestWithSslFactory(SSLSocketFactory sslFactory, String url) throws IOException { HttpsURLConnection conn = null; InputStream is = null; + try { URL u = new URL(url); conn = (HttpsURLConnection) u.openConnection(); conn.setSSLSocketFactory(sslFactory); conn.setRequestMethod("GET"); - conn.setRequestProperty("Accept", "application/json"); + conn. setRequestProperty("Accept", "application/json"); conn.setConnectTimeout(15000); conn.setReadTimeout(30000); conn.setDoInput(true); - int code = conn.getResponseCode(); - if (code != 200) { - InputStream err = conn.getErrorStream(); - String body = toString(err); - throw new IOException("HTTP " + code + " -> " + body); + int statusCode = conn.getResponseCode(); + log.info("[ConsultaTributacao] Status HTTP: " + statusCode); + + if (statusCode != HttpStatus.SC_OK) { + String errorBody = inputStreamToString(conn.getErrorStream()); + log.severe("[ConsultaTributacao] Erro HTTP " + statusCode + ": " + errorBody); + throw new IOException("Erro HTTP " + statusCode + ": " + errorBody); } is = new BufferedInputStream(conn.getInputStream()); - return MAPPER.readValue(is, new TypeReference>() {}); + return inputStreamToString(is); + } finally { if (is != null) { try { is.close(); } catch (IOException ignored) {} } if (conn != null) { - conn.disconnect(); + conn. disconnect(); } } } /** - * Tenta resolver SSLSocketFactory via reflexão a partir da infra de certificado existente. - * Primeira tentativa: métodos estáticos em CertificadoService (getSSLSocketFactory/getSslContext). - * Segunda tentativa: métodos públicos no próprio objeto Certificado. + * Tenta resolver SSLSocketFactory via reflexão (fallback). */ private static SSLSocketFactory tryResolveSslSocketFactory(ConfiguracoesNfe config) { - // 1) tenta métodos estáticos em CertificadoService try { Class svc = Class.forName("br.com.swconsultoria.certificado.CertificadoService"); + try { - java.lang.reflect.Method m = svc.getMethod("getSSLSocketFactory", Class.forName("br.com.swconsultoria.certificado.Certificado")); + java.lang.reflect.Method m = svc.getMethod("getSSLSocketFactory", + Class.forName("br.com.swconsultoria.certificado. Certificado")); Object res = m.invoke(null, config.getCertificado()); if (res instanceof SSLSocketFactory) { return (SSLSocketFactory) res; } } catch (NoSuchMethodException ignored) {} + try { - java.lang.reflect.Method m2 = svc.getMethod("getSslContext", Class.forName("br.com.swconsultoria.certificado.Certificado")); + java.lang.reflect.Method m2 = svc.getMethod("getSslContext", + Class.forName("br.com.swconsultoria.certificado.Certificado")); Object res2 = m2.invoke(null, config.getCertificado()); if (res2 instanceof SSLContext) { return ((SSLContext) res2).getSocketFactory(); } } catch (NoSuchMethodException ignored) {} + } catch (Throwable ignored) {} - // 2) tenta métodos no próprio objeto Certificado (getSSLSocketFactory / getSslContext / getSocketFactory) Object cert = config.getCertificado(); if (cert != null) { try { @@ -181,6 +415,7 @@ private static SSLSocketFactory tryResolveSslSocketFactory(ConfiguracoesNfe conf return (SSLSocketFactory) res; } } catch (Throwable ignored) {} + try { java.lang.reflect.Method m2 = cert.getClass().getMethod("getSslContext"); Object res2 = m2.invoke(cert); @@ -188,29 +423,27 @@ private static SSLSocketFactory tryResolveSslSocketFactory(ConfiguracoesNfe conf return ((SSLContext) res2).getSocketFactory(); } } catch (Throwable ignored) {} - try { - java.lang.reflect.Method m3 = cert.getClass().getMethod("getSocketFactory"); - Object res3 = m3.invoke(cert); - if (res3 instanceof SSLSocketFactory) { - return (SSLSocketFactory) res3; - } - } catch (Throwable ignored) {} } return null; } - private static String toString(InputStream is) throws IOException { + /** + * Converte InputStream para String (compatível Java 8). + */ + private static String inputStreamToString(InputStream is) throws IOException { if (is == null) { return ""; } - // leitura compatível com Java 8 + ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[4096]; - int read; - while ((read = is.read(buffer)) != -1) { - baos.write(buffer, 0, read); + int bytesRead; + + while ((bytesRead = is.read(buffer)) != -1) { + baos.write(buffer, 0, bytesRead); } + return new String(baos.toByteArray(), StandardCharsets.UTF_8); } } From 30ed7250eac40ded53ba417a717f31c8e3e36164 Mon Sep 17 00:00:00 2001 From: Rodrigo Aguiar Vidal Cananea Date: Thu, 4 Dec 2025 01:02:59 -0300 Subject: [PATCH 02/20] =?UTF-8?q?Configurado=20para=20funcionar=20de=20for?= =?UTF-8?q?ma=20generica=20ConsultaTributacao=20com=20valida=C3=A7=C3=A3o?= =?UTF-8?q?=20de=20campos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../swconsultoria/nfe/ConsultaTributacao.java | 575 +++++++++++++----- .../nfe/exemplos/ConsultaTributacaoTeste.java | 172 ++++-- 2 files changed, 530 insertions(+), 217 deletions(-) diff --git a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java index bd26338a..a8c9169f 100644 --- a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java +++ b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java @@ -6,73 +6,95 @@ import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe; import br.com.swconsultoria.nfe.exception.NfeException; import br.com.swconsultoria.nfe.util.ConfiguracoesUtil; -import br.com.swconsultoria.nfe. util.ObjetoUtil; +import br.com.swconsultoria.nfe.util.ObjetoUtil; import br.com.swconsultoria.nfe.util.WebServiceUtil; -import com.fasterxml.jackson.core.type. TypeReference; -import com.fasterxml.jackson.databind. DeserializationFeature; -import com.fasterxml.jackson. databind.ObjectMapper; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.Getter; +import lombok.Setter; import lombok.extern.java.Log; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; -import org.apache. commons.httpclient.methods. GetMethod; +import org.apache.commons.httpclient.methods.GetMethod; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; -import java. io.IOException; -import java. io.InputStream; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Field; import java.net.URL; import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.Map; +import java.util.*; /** - * Classe responsável por realizar consultas REST a serviços externos com certificado digital. - * - * Oferece três modos de uso: - * 1. Retorno direto do JSON string (método getJson) - * 2. Conversão genérica para qualquer tipo de objeto (método get com Class) - * 3. Conversão genérica com TypeReference para tipos complexos (método get com TypeReference) - * + * Classe responsável por consultar classificações tributárias para a Reforma Tributária, utiliza o serviço web disponibilizado pelo governo federal. + * Foi criada para funcionar da forma mais genérica possível, permitindo a consulta e manipulação dos dados retornados em JSON se necessário. + *

+ * Oferece quatro modos de uso: + *

1. Retorno direto do JSON string (método getJson)

+ *

2. Conversão genérica para qualquer tipo de objeto (método get com Class)

+ *

3. Conversão genérica com TypeReference para tipos complexos (método get com TypeReference)

+ *

4. Validação de estrutura JSON vs DTO (método validate)

+ *

* Exemplos de uso: + *

+ * // Obter JSON bruto
+ * String json = ConsultaTributacao.getJson(config);
  *
- * // 1. Obter JSON bruto
- * String json = ConsultaTributacao.getJson(config, "CFF", "classTrib");
- *
- * // 2.  Converter para List
- * List lista = ConsultaTributacao.get(config, "CFF", "classTrib",
- *     new TypeReference>() {});
+ * // Converter para List de DTOs
+ * List<CstDTO> lista = ConsultaTributacao.get(config, new TypeReference<List<CstDTO>>() {});
  *
- * // 3.  Converter para objeto único
- * MeuDTO objeto = ConsultaTributacao.get(config, "CFF", "classTrib", MeuDTO.class);
- *
- * // 4. Com parâmetros query
- * Map params = new HashMap<>();
+ * // Com filtros
+ * Map<String, String> params = new HashMap<>();
  * params.put("Cst", "00");
- * String json = ConsultaTributacao. getJson(config, "CFF", "classTrib", params);
+ * List<CstDTO> filtrado = ConsultaTributacao.get(config, params, new TypeReference<List<CstDTO>>() {});
+ *
+ * // Validar estrutura
+ * ValidationReport report = ConsultaTributacao.validate(config, CstDTO.class);
+ * 
* - * @author Samuel Oliveira - samuel@swconsultoria.com. br + * @author Rodrigo Cananea - rodrigo@rcconsultoria.inf.br */ @Log +@SuppressWarnings("all") public class ConsultaTributacao { - private ConsultaTributacao() {} + private ConsultaTributacao() { + } + + private static final String SECTION = "CFF"; + private static final String KEY = "classTrib"; private static final ObjectMapper MAPPER = createObjectMapper(); + private static final ObjectMapper STRICT_MAPPER = createStrictObjectMapper(); /** * Cria ObjectMapper configurado para ser tolerante a mudanças no JSON. - * Propriedades desconhecidas ou faltantes não causam erro de deserialização. */ private static ObjectMapper createObjectMapper() { ObjectMapper mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature. FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, false); mapper.configure(DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES, false); mapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true); - mapper.configure(DeserializationFeature. ACCEPT_SINGLE_VALUE_AS_ARRAY, true); + mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); + return mapper; + } + + /** + * Cria ObjectMapper rigoroso para detecção de inconsistências. + */ + private static ObjectMapper createStrictObjectMapper() { + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true); + mapper.configure(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES, true); + mapper.configure(DeserializationFeature.FAIL_ON_MISSING_CREATOR_PROPERTIES, true); return mapper; } @@ -80,33 +102,28 @@ private static ObjectMapper createObjectMapper() { * Executa requisição HTTP GET e retorna o JSON string bruto. * * @param config Configurações da NFe contendo certificado digital - * @param section Seção no arquivo WebServicesNfe.ini (ex: "CFF") - * @param key Chave da URL na seção (ex: "classTrib") * @return String contendo o JSON de resposta * @throws NfeException Se houver erro de configuração ou certificado - * @throws IOException Se houver erro de comunicação HTTP + * @throws IOException Se houver erro de comunicação HTTP */ - public static String getJson(ConfiguracoesNfe config, String section, String key) - throws NfeException, IOException { - return getJson(config, section, key, null); + public static String getJson(ConfiguracoesNfe config) throws NfeException, IOException { + return getJson(config, null); } /** * Executa requisição HTTP GET com parâmetros de query e retorna o JSON string bruto. * - * @param config Configurações da NFe contendo certificado digital - * @param section Seção no arquivo WebServicesNfe. ini (ex: "CFF") - * @param key Chave da URL na seção (ex: "classTrib") + * @param config Configurações da NFe contendo certificado digital * @param queryParams Mapa com parâmetros de query (ex: {"Cst": "00"}) * @return String contendo o JSON de resposta * @throws NfeException Se houver erro de configuração ou certificado - * @throws IOException Se houver erro de comunicação HTTP + * @throws IOException Se houver erro de comunicação HTTP */ - public static String getJson(ConfiguracoesNfe config, String section, String key, Map queryParams) + public static String getJson(ConfiguracoesNfe config, Map queryParams) throws NfeException, IOException { ConfiguracoesUtil.iniciaConfiguracoes(config); - String urlBase = WebServiceUtil.getCustomUrl(config, section, key); + String urlBase = WebServiceUtil.getCustomUrl(config, SECTION, KEY); String url = buildUrlWithParams(urlBase, queryParams); Certificado certificado = config.getCertificado(); @@ -114,8 +131,6 @@ public static String getJson(ConfiguracoesNfe config, String section, String key throw new NfeException("Certificado digital não configurado"); } - log.info("[ConsultaTributacao] Requisitando: " + url); - try { HttpClient httpClient = createHttpClient(config, certificado, url); if (httpClient != null) { @@ -131,8 +146,7 @@ public static String getJson(ConfiguracoesNfe config, String section, String key } throw new NfeException( - "Não foi possível configurar SSL/TLS para a requisição. " + - "Verifique se o certificado está corretamente configurado." + "Não foi possível configurar SSL/TLS para a requisição." ); } @@ -140,50 +154,33 @@ public static String getJson(ConfiguracoesNfe config, String section, String key * Executa requisição HTTP GET e converte o JSON para o tipo especificado. * Método genérico que aceita qualquer classe DTO. * - * Exemplo de uso: - *
-     * MeuDTO objeto = ConsultaTributacao.get(config, "CFF", "classTrib", MeuDTO.class);
-     * 
- * - * @param Tipo do objeto de retorno + * @param Tipo do objeto de retorno * @param config Configurações da NFe contendo certificado digital - * @param section Seção no arquivo WebServicesNfe.ini - * @param key Chave da URL na seção - * @param clazz Classe do objeto de destino + * @param clazz Classe do objeto de destino * @return Objeto do tipo T com os dados deserializados do JSON * @throws NfeException Se houver erro de configuração, certificado ou conversão - * @throws IOException Se houver erro de comunicação HTTP + * @throws IOException Se houver erro de comunicação HTTP */ - public static T get(ConfiguracoesNfe config, String section, String key, Class clazz) + public static T get(ConfiguracoesNfe config, Class clazz) throws NfeException, IOException { - String json = getJson(config, section, key); + String json = getJson(config); return convertJsonToObject(json, clazz); } /** * Executa requisição HTTP GET com parâmetros e converte o JSON para o tipo especificado. * - * Exemplo de uso: - *
-     * Map params = new HashMap<>();
-     * params.put("Cst", "00");
-     * MeuDTO objeto = ConsultaTributacao.get(config, "CFF", "classTrib", params, MeuDTO.class);
-     * 
- * - * @param Tipo do objeto de retorno - * @param config Configurações da NFe - * @param section Seção no arquivo INI - * @param key Chave da URL + * @param Tipo do objeto de retorno + * @param config Configurações da NFe * @param queryParams Parâmetros de query - * @param clazz Classe do objeto de destino + * @param clazz Classe do objeto de destino * @return Objeto do tipo T deserializado * @throws NfeException Se houver erro - * @throws IOException Se houver erro de I/O + * @throws IOException Se houver erro de I/O */ - public static T get(ConfiguracoesNfe config, String section, String key, - Map queryParams, Class clazz) + public static T get(ConfiguracoesNfe config, Map queryParams, Class clazz) throws NfeException, IOException { - String json = getJson(config, section, key, queryParams); + String json = getJson(config, queryParams); return convertJsonToObject(json, clazz); } @@ -191,60 +188,271 @@ public static T get(ConfiguracoesNfe config, String section, String key, * Executa requisição HTTP GET e converte o JSON para tipos complexos (ex: List, Map). * Usa TypeReference do Jackson para preservar informações de tipo genérico. * - * Exemplo de uso: - *
-     * List lista = ConsultaTributacao.get(config, "CFF", "classTrib",
-     *     new TypeReference>() {});
-     *
-     * Map mapa = ConsultaTributacao.get(config, "CFF", "classTrib",
-     *     new TypeReference>() {});
-     * 
- * - * @param Tipo do objeto de retorno - * @param config Configurações da NFe - * @param section Seção no arquivo INI - * @param key Chave da URL + * @param Tipo do objeto de retorno + * @param config Configurações da NFe * @param typeRef TypeReference com o tipo genérico desejado * @return Objeto do tipo T deserializado * @throws NfeException Se houver erro - * @throws IOException Se houver erro de I/O + * @throws IOException Se houver erro de I/O */ - public static T get(ConfiguracoesNfe config, String section, String key, TypeReference typeRef) + public static T get(ConfiguracoesNfe config, TypeReference typeRef) throws NfeException, IOException { - String json = getJson(config, section, key); + String json = getJson(config); return convertJsonToObject(json, typeRef); } /** * Executa requisição HTTP GET com parâmetros e converte para tipos complexos. * - * @param Tipo do objeto de retorno - * @param config Configurações da NFe - * @param section Seção no arquivo INI - * @param key Chave da URL + * @param Tipo do objeto de retorno + * @param config Configurações da NFe * @param queryParams Parâmetros de query - * @param typeRef TypeReference com o tipo genérico + * @param typeRef TypeReference com o tipo genérico * @return Objeto do tipo T deserializado * @throws NfeException Se houver erro - * @throws IOException Se houver erro de I/O + * @throws IOException Se houver erro de I/O */ - public static T get(ConfiguracoesNfe config, String section, String key, - Map queryParams, TypeReference typeRef) + public static T get(ConfiguracoesNfe config, Map queryParams, TypeReference typeRef) throws NfeException, IOException { - String json = getJson(config, section, key, queryParams); + String json = getJson(config, queryParams); return convertJsonToObject(json, typeRef); } /** - * Converte JSON string para objeto do tipo especificado. - * Propriedades desconhecidas no JSON são ignoradas automaticamente. + * Valida a estrutura do JSON retornado pela API contra um DTO. + * Retorna um relatório detalhado de inconsistências. + *

+ * Exemplo de uso: + *

+     * ValidationReport report = ConsultaTributacao.validate(config, CstDTO.class);
+     *
+     * if (report.hasIssues()) {
+     *     System.out.println("Campos extras no JSON: " + report.getExtraFields());
+     *     System.out.println("Campos faltando no JSON: " + report.getMissingFields());
+     *     System.out.println("Erros de tipo: " + report.getTypeErrors());
+     * }
+     * 
* - * @param Tipo do objeto de retorno - * @param json String JSON a ser convertida - * @param clazz Classe do objeto de destino - * @return Objeto deserializado - * @throws NfeException Se houver erro na conversão + * @param config Configurações da NFe + * @param clazz Classe do DTO a ser validada + * @return ValidationReport com detalhes das inconsistências + * @throws NfeException Se houver erro na consulta + * @throws IOException Se houver erro de I/O */ + public static ValidationReport validate(ConfiguracoesNfe config, Class clazz) + throws NfeException, IOException { + String json = getJson(config); + return validateJsonStructure(json, clazz); + } + + /** + * Valida JSON contra DTO com parâmetros de query. + * + * @param config Configurações + * @param queryParams Parâmetros + * @param clazz Classe do DTO + * @return ValidationReport + * @throws NfeException Se houver erro + * @throws IOException Se houver erro de I/O + */ + public static ValidationReport validate(ConfiguracoesNfe config, Map queryParams, Class clazz) + throws NfeException, IOException { + String json = getJson(config, queryParams); + return validateJsonStructure(json, clazz); + } + + /** + * Valida JSON contra TypeReference (para List, Map, etc). + *

+ * Exemplo: + *

+     * ValidationReport report = ConsultaTributacao.validate(
+     *     config,
+     *     new TypeReference<List<CstDTO>>() {},
+     *     CstDTO. class  // classe interna para validar
+     * );
+     * 
+ * + * @param config Configurações + * @param typeRef TypeReference do tipo externo (ex: List) + * @param innerClass Classe interna para validar (ex: CstDTO dentro de List<CstDTO>) + * @return ValidationReport + * @throws NfeException Se houver erro + * @throws IOException Se houver erro de I/O + */ + public static ValidationReport validate(ConfiguracoesNfe config, TypeReference typeRef, Class innerClass) + throws NfeException, IOException { + String json = getJson(config); + return validateJsonStructure(json, innerClass); + } + + /** + * Testa se o JSON pode ser convertido sem erros (modo rigoroso). + * Retorna true se a conversão for bem-sucedida, false caso contrário. + * + * @param config Configurações + * @param clazz Classe do DTO + * @return true se compatível, false se houver problemas + */ + public static boolean isCompatible(ConfiguracoesNfe config, Class clazz) { + try { + String json = getJson(config); + STRICT_MAPPER.readValue(json, clazz); + return true; + } catch (Exception e) { + log.warning("[ConsultaTributacao] Incompatibilidade detectada: " + e.getMessage()); + return false; + } + } + + /** + * Valida estrutura do JSON contra uma classe DTO. + * Identifica campos extras, faltantes e problemas de tipo. + */ + private static ValidationReport validateJsonStructure(String json, Class clazz) throws NfeException { + ValidationReport report = new ValidationReport(); + + try { + JsonNode rootNode = MAPPER.readTree(json); + + // Se o JSON é um array, valida o primeiro elemento + JsonNode nodeToValidate = rootNode; + if (rootNode.isArray() && rootNode.size() > 0) { + nodeToValidate = rootNode.get(0); + report.setArrayDetected(true); + report.setArraySize(rootNode.size()); + } + + // Obtém campos esperados do DTO + Map> expectedFields = extractDtoFields(clazz); + + // Obtém campos presentes no JSON + Set jsonFields = new HashSet<>(); + Iterator fieldNames = nodeToValidate.fieldNames(); + while (fieldNames.hasNext()) { + jsonFields.add(fieldNames.next()); + } + + // Identifica campos extras no JSON + Set extraFields = new HashSet<>(jsonFields); + extraFields.removeAll(expectedFields.keySet()); + report.setExtraFields(extraFields); + + // Identifica campos faltando no JSON + Set missingFields = new HashSet<>(expectedFields.keySet()); + missingFields.removeAll(jsonFields); + report.setMissingFields(missingFields); + + // Valida tipos dos campos presentes + Map typeErrors = new HashMap<>(); + for (Map.Entry> entry : expectedFields.entrySet()) { + String fieldName = entry.getKey(); + Class expectedType = entry.getValue(); + + if (jsonFields.contains(fieldName)) { + JsonNode fieldNode = nodeToValidate.get(fieldName); + if (!isTypeCompatible(fieldNode, expectedType)) { + typeErrors.put(fieldName, + "Esperado: " + expectedType.getSimpleName() + + ", Encontrado: " + getJsonNodeType(fieldNode)); + } + } + } + report.setTypeErrors(typeErrors); + + // Tenta conversão estrita para detectar outros problemas + try { + STRICT_MAPPER.readValue(json, clazz); + report.setStrictConversionSuccess(true); + } catch (Exception e) { + report.setStrictConversionSuccess(false); + report.setStrictConversionError(e.getMessage()); + } + + } catch (IOException e) { + throw new NfeException("Erro ao validar JSON: " + e.getMessage(), e); + } + + return report; + } + + /** + * Extrai campos do DTO com suas anotações @JsonProperty. + */ + private static Map> extractDtoFields(Class clazz) { + Map> fields = new HashMap<>(); + + for (Field field : clazz.getDeclaredFields()) { + JsonProperty annotation = field.getAnnotation(JsonProperty.class); + String jsonFieldName; + + if (annotation != null && !annotation.value().isEmpty()) { + jsonFieldName = annotation.value(); + } else { + jsonFieldName = field.getName(); + } + + fields.put(jsonFieldName, field.getType()); + } + + return fields; + } + + /** + * Verifica se o tipo do JsonNode é compatível com o tipo esperado. + */ + private static boolean isTypeCompatible(JsonNode node, Class expectedType) { + if (node.isNull()) { + return true; + } + + if (expectedType == String.class) { + return node.isTextual(); + } + + if (expectedType == Integer.class || expectedType == int.class || + expectedType == Long.class || expectedType == long.class || + expectedType == Short.class || expectedType == short.class || + expectedType == Byte.class || expectedType == byte.class) { + return node.isIntegralNumber(); + } + + if (expectedType == Double.class || expectedType == double.class || + expectedType == Float.class || expectedType == float.class || + expectedType == java.math.BigDecimal.class) { + return node.isNumber(); + } + + if (expectedType == Boolean.class || expectedType == boolean.class) { + return node.isBoolean(); + } + + if (List.class.isAssignableFrom(expectedType) || + Collection.class.isAssignableFrom(expectedType)) { + return node.isArray(); + } + + if (Map.class.isAssignableFrom(expectedType)) { + return node.isObject(); + } + + return node.isObject(); + } + + /** + * Retorna o tipo do JsonNode como string descritiva. + */ + private static String getJsonNodeType(JsonNode node) { + if (node.isNull()) return "null"; + if (node.isTextual()) return "String"; + if (node.isIntegralNumber()) return "Integer"; + if (node.isFloatingPointNumber()) return "Decimal"; + if (node.isBoolean()) return "Boolean"; + if (node.isArray()) return "Array"; + if (node.isObject()) return "Object"; + return "Unknown"; + } + private static T convertJsonToObject(String json, Class clazz) throws NfeException { try { log.info("[ConsultaTributacao] Convertendo JSON para " + clazz.getSimpleName()); @@ -255,39 +463,23 @@ private static T convertJsonToObject(String json, Class clazz) throws Nfe } } - /** - * Converte JSON string para tipo complexo usando TypeReference. - * - * @param Tipo do objeto de retorno - * @param json String JSON a ser convertida - * @param typeRef TypeReference com informações de tipo genérico - * @return Objeto deserializado - * @throws NfeException Se houver erro na conversão - */ private static T convertJsonToObject(String json, TypeReference typeRef) throws NfeException { try { log.info("[ConsultaTributacao] Convertendo JSON para tipo complexo"); return MAPPER.readValue(json, typeRef); } catch (IOException e) { - log.severe("[ConsultaTributacao] Erro ao converter JSON: " + e. getMessage()); + log.severe("[ConsultaTributacao] Erro ao converter JSON: " + e.getMessage()); throw new NfeException("Erro ao processar resposta JSON: " + e.getMessage(), e); } } - /** - * Constrói URL completa com parâmetros de query. - * - * @param baseUrl URL base - * @param queryParams Mapa de parâmetros (pode ser null) - * @return URL completa com query string - */ private static String buildUrlWithParams(String baseUrl, Map queryParams) { if (queryParams == null || queryParams.isEmpty()) { return baseUrl; } StringBuilder url = new StringBuilder(baseUrl); - boolean first = ! baseUrl.contains("?"); + boolean first = !baseUrl.contains("?"); for (Map.Entry entry : queryParams.entrySet()) { if (entry.getValue() != null && !entry.getValue().trim().isEmpty()) { @@ -300,21 +492,15 @@ private static String buildUrlWithParams(String baseUrl, Map que return url.toString(); } - /** - * Cria HttpClient configurado com certificado digital. - */ private static HttpClient createHttpClient(ConfiguracoesNfe config, Certificado certificado, String url) throws CertificadoException { - if (ObjetoUtil.verifica(config.getCacert()). isPresent()) { + if (ObjetoUtil.verifica(config.getCacert()).isPresent()) { return CertificadoService.getHttpsClient(certificado, url, config.getCacert()); } else { return CertificadoService.getHttpsClient(certificado, url); } } - /** - * Executa requisição HTTP GET usando Apache HttpClient. - */ private static String executeRequestWithHttpClient(HttpClient httpClient, String url) throws IOException { GetMethod getMethod = new GetMethod(url); @@ -340,9 +526,6 @@ private static String executeRequestWithHttpClient(HttpClient httpClient, String } } - /** - * Executa requisição usando SSLSocketFactory (fallback). - */ private static String executeRequestWithSslFactory(SSLSocketFactory sslFactory, String url) throws IOException { HttpsURLConnection conn = null; InputStream is = null; @@ -352,7 +535,7 @@ private static String executeRequestWithSslFactory(SSLSocketFactory sslFactory, conn = (HttpsURLConnection) u.openConnection(); conn.setSSLSocketFactory(sslFactory); conn.setRequestMethod("GET"); - conn. setRequestProperty("Accept", "application/json"); + conn.setRequestProperty("Accept", "application/json"); conn.setConnectTimeout(15000); conn.setReadTimeout(30000); conn.setDoInput(true); @@ -371,17 +554,17 @@ private static String executeRequestWithSslFactory(SSLSocketFactory sslFactory, } finally { if (is != null) { - try { is.close(); } catch (IOException ignored) {} + try { + is.close(); + } catch (IOException ignored) { + } } if (conn != null) { - conn. disconnect(); + conn.disconnect(); } } } - /** - * Tenta resolver SSLSocketFactory via reflexão (fallback). - */ private static SSLSocketFactory tryResolveSslSocketFactory(ConfiguracoesNfe config) { try { Class svc = Class.forName("br.com.swconsultoria.certificado.CertificadoService"); @@ -393,7 +576,8 @@ private static SSLSocketFactory tryResolveSslSocketFactory(ConfiguracoesNfe conf if (res instanceof SSLSocketFactory) { return (SSLSocketFactory) res; } - } catch (NoSuchMethodException ignored) {} + } catch (NoSuchMethodException ignored) { + } try { java.lang.reflect.Method m2 = svc.getMethod("getSslContext", @@ -402,9 +586,11 @@ private static SSLSocketFactory tryResolveSslSocketFactory(ConfiguracoesNfe conf if (res2 instanceof SSLContext) { return ((SSLContext) res2).getSocketFactory(); } - } catch (NoSuchMethodException ignored) {} + } catch (NoSuchMethodException ignored) { + } - } catch (Throwable ignored) {} + } catch (Throwable ignored) { + } Object cert = config.getCertificado(); if (cert != null) { @@ -414,7 +600,8 @@ private static SSLSocketFactory tryResolveSslSocketFactory(ConfiguracoesNfe conf if (res instanceof SSLSocketFactory) { return (SSLSocketFactory) res; } - } catch (Throwable ignored) {} + } catch (Throwable ignored) { + } try { java.lang.reflect.Method m2 = cert.getClass().getMethod("getSslContext"); @@ -422,15 +609,13 @@ private static SSLSocketFactory tryResolveSslSocketFactory(ConfiguracoesNfe conf if (res2 instanceof SSLContext) { return ((SSLContext) res2).getSocketFactory(); } - } catch (Throwable ignored) {} + } catch (Throwable ignored) { + } } return null; } - /** - * Converte InputStream para String (compatível Java 8). - */ private static String inputStreamToString(InputStream is) throws IOException { if (is == null) { return ""; @@ -446,4 +631,92 @@ private static String inputStreamToString(InputStream is) throws IOException { return new String(baos.toByteArray(), StandardCharsets.UTF_8); } + + /** + * Classe que representa o relatório de validação da estrutura JSON. + */ + @Setter + @Getter + public static class ValidationReport { + private Set extraFields = new HashSet<>(); + private Set missingFields = new HashSet<>(); + private Map typeErrors = new HashMap<>(); + private boolean strictConversionSuccess; + private String strictConversionError; + private boolean arrayDetected; + private int arraySize; + + /** + * Retorna true se houver qualquer inconsistência detectada. + */ + public boolean hasIssues() { + return !extraFields.isEmpty() || + !missingFields.isEmpty() || + !typeErrors.isEmpty() || + !strictConversionSuccess; + } + + /** + * Retorna true se não houver nenhum problema. + */ + public boolean isValid() { + return !hasIssues(); + } + + /** + * Gera relatório formatado em texto. + */ + public String generateReport() { + StringBuilder sb = new StringBuilder(); + sb.append("=== RELATORIO DE VALIDACAO ===\n\n"); + + if (arrayDetected) { + sb.append("Array detectado com ").append(arraySize).append(" elemento(s)\n"); + sb.append("Validacao realizada no primeiro elemento\n\n"); + } + + if (extraFields.isEmpty() && missingFields.isEmpty() && typeErrors.isEmpty()) { + sb.append("ESTRUTURA 100% COMPATIVEL\n"); + sb.append(" - Nenhum campo extra no JSON\n"); + sb.append(" - Nenhum campo faltando\n"); + sb.append(" - Todos os tipos estao corretos\n"); + } else { + if (!extraFields.isEmpty()) { + sb.append("ATENCAO: Campos EXTRAS no JSON (nao mapeados no DTO):\n"); + for (String field : extraFields) { + sb.append(" - ").append(field).append("\n"); + } + sb.append("\n"); + } + + if (!missingFields.isEmpty()) { + sb.append("ATENCAO: Campos FALTANDO no JSON (esperados no DTO):\n"); + for (String field : missingFields) { + sb.append(" - ").append(field).append("\n"); + } + sb.append("\n"); + } + + if (!typeErrors.isEmpty()) { + sb.append("ERRO: Incompatibilidade de tipos:\n"); + for (Map.Entry entry : typeErrors.entrySet()) { + sb.append(" - ").append(entry.getKey()).append(": ").append(entry.getValue()).append("\n"); + } + sb.append("\n"); + } + } + + sb.append("Conversao estrita: ").append(strictConversionSuccess ? "SUCESSO" : "FALHOU").append("\n"); + if (!strictConversionSuccess && strictConversionError != null) { + sb.append(" Erro: ").append(strictConversionError).append("\n"); + } + + return sb.toString(); + } + + @Override + public String toString() { + return generateReport(); + } + } } diff --git a/src/test/java/br/com/swconsultoria/nfe/exemplos/ConsultaTributacaoTeste.java b/src/test/java/br/com/swconsultoria/nfe/exemplos/ConsultaTributacaoTeste.java index b80b17dd..9e556ef1 100644 --- a/src/test/java/br/com/swconsultoria/nfe/exemplos/ConsultaTributacaoTeste.java +++ b/src/test/java/br/com/swconsultoria/nfe/exemplos/ConsultaTributacaoTeste.java @@ -1,92 +1,132 @@ package br.com.swconsultoria.nfe.exemplos; -import br.com.swconsultoria.certificado.exception.CertificadoException; import br.com.swconsultoria.nfe.ConsultaTributacao; +import br.com.swconsultoria.nfe.ConsultaTributacao.ValidationReport; import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe; -import br.com.swconsultoria.nfe.dto.ClassificacaoTributariaDTO; import br.com.swconsultoria.nfe.dto.CstDTO; -import br.com.swconsultoria.nfe.exception.NfeException; -import br.com.swconsultoria.nfe.util.ConfiguracoesUtil; -import br.com.swconsultoria.nfe.util.WebServiceUtil; import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import java.io.IOException; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** - * Teste de exemplo para executar a consulta classTrib (CFF) e imprimir o resultado. + * Exemplos de uso da classe ConsultaTributacao. + * Demonstra os principais recursos disponíveis para consulta de classificações tributárias CFF. * - * Observações: - * - Certifique-se de que ConfiguracaoTeste.iniciaConfiguracoes(...) retorna ConfiguracoesNfe com certificado válido - * (o mesmo usado nas outras chamadas da biblioteca). - * - Garanta que o arquivo WebServicesNfe.ini contenha a seção [CFF] com a chave classTrib apontando para: - * https://cff.svrs.rs.gov.br/api/v1/consultas/classTrib - * - * Execução (IDE ou linha de comando): - * rode como uma aplicação Java normal; o método main inicializa config e executa a consulta. + * @author Rodrigo Cananea - rodrigo@rcconsultoria.inf.br */ public class ConsultaTributacaoTeste { public static void main(String[] args) { - try { - // Inicializa configurações (usa o helper de teste que já existe no projeto) ConfiguracoesNfe config = ConfiguracaoTeste.iniciaConfiguracoes( - br.com.swconsultoria.nfe.dom.enuns.EstadosEnum.MG, - br.com.swconsultoria.nfe.dom.enuns.AmbienteEnum.HOMOLOGACAO + br.com.swconsultoria.nfe.dom.enuns.EstadosEnum.RS, + br.com.swconsultoria.nfe.dom.enuns.AmbienteEnum.PRODUCAO ); - // (opcional) valida se a URL está presente (ajuda a detectar INI não configurado) - try { - String url = WebServiceUtil.getCustomUrl(config, "CFF", "classTrib"); - System.out.println("URL classTrib: " + url); - } catch (Exception e) { - System.err.println("Não foi possível localizar a URL classTrib no WebServicesNfe.ini: " + e.getMessage()); - throw e; - } + exemploJsonString(config); + exemploConversaoDTO(config); + exemploComFiltro(config); + exemploValidacao(config); - // Executa a consulta (reaproveita a infra de certificado via ConfiguracoesUtil e CertificadoService) - List lista = ConsultaTributacao.getClassTrib(config); - - // Imprime resumo - System.out.println(); - System.out.println("Quantidade de CSTs retornados: " + (lista == null ? 0 : lista.size())); - System.out.println(); - - if (lista != null) { - for (CstDTO cst : lista) { - System.out.println("=== CST: " + cst.getCst() + " - " + cst.getDescricaoCST() + " ==="); - System.out.println("IndIBSCBS: " + cst.getIndIBSCBS() - + " | IndRedBC: " + cst.getIndRedBC() - + " | IndRedAliq: " + cst.getIndRedAliq()); - System.out.println("Classificações:"); - - List classs = cst.getClassificacoesTributarias(); - if (classs != null) { - for (ClassificacaoTributariaDTO ct : classs) { - System.out.println(" - cClassTrib: " + ct.getCClassTrib()); - System.out.println(" Descrição: " + ct.getDescricaoClassTrib()); - System.out.println(" pRedIBS: " + ct.getPRedIBS() + " | pRedCBS: " + ct.getPRedCBS()); - System.out.println(" TipoAliquota: " + ct.getTipoAliquota() + " | Anexo: " + ct.getAnexo()); - System.out.println(" Link: " + ct.getLink()); - System.out.println(); - } - } else { - System.out.println(" (nenhuma classificação)"); - } - System.out.println(); - } - } + System.out.println("\nTodos os exemplos executados com sucesso!"); - } catch (NfeException | IOException | CertificadoException e) { - System.err.println(); - System.err.println("Erro ao executar consulta classTrib: " + e.getMessage()); - e.printStackTrace(); } catch (Exception e) { - System.err.println(); - System.err.println("Erro inesperado: " + e.getMessage()); + System.err.println("Erro durante execucao: " + e.getMessage()); e.printStackTrace(); } } + + /** + * Exemplo 1: Obter JSON string bruto da API. + */ + private static void exemploJsonString(ConfiguracoesNfe config) throws Exception { + System.out.println("=== EXEMPLO 1: Obter JSON Bruto ==="); + + String json = ConsultaTributacao.getJson(config); + + System.out.println("JSON recebido: " + json.length() + " caracteres"); + System.out.println(); + } + + /** + * Exemplo 2: Converter automaticamente para objetos DTO. + */ + private static void exemploConversaoDTO(ConfiguracoesNfe config) throws Exception { + System.out.println("=== EXEMPLO 2: Converter para DTOs ==="); + + List lista = ConsultaTributacao.get( + config, + new TypeReference>() { + } + ); + + System.out.println("Total de CSTs: " + lista.size()); + + if (!lista.isEmpty()) { + CstDTO primeiro = lista.get(0); + System.out.println("Primeiro CST: " + primeiro.getCst() + " - " + primeiro.getDescricaoCST()); + } + + System.out.println(); + } + + /** + * Exemplo 3: Consulta com filtro por CST específico. + */ + private static void exemploComFiltro(ConfiguracoesNfe config) throws Exception { + System.out.println("=== EXEMPLO 3: Consulta com Filtro ==="); + + Map parametros = new HashMap<>(); + parametros.put("Cst", "00"); + + List filtrado = ConsultaTributacao.get( + config, + parametros, + new TypeReference>() { + } + ); + + System.out.println("CSTs com filtro Cst=00: " + filtrado.size()); + + for (CstDTO cst : filtrado) { + System.out.println(" - " + cst.getCst() + ": " + cst.getDescricaoCST()); + } + + System.out.println(); + } + + /** + * Exemplo 4: Validar compatibilidade do DTO com o JSON da API. + */ + private static void exemploValidacao(ConfiguracoesNfe config) throws Exception { + System.out.println("=== EXEMPLO 4: Validar Estrutura ==="); + + ValidationReport report = ConsultaTributacao.validate(config, CstDTO.class); + + if (report.isValid()) { + System.out.println("DTO esta 100% compativel com a API"); + } else { + System.out.println("ATENCAO: Inconsistencias detectadas\n"); + + if (!report.getExtraFields().isEmpty()) { + System.out.println("Campos extras no JSON (nao estao no DTO):"); + report.getExtraFields().forEach(field -> System.out.println(" - " + field)); + } + + if (!report.getMissingFields().isEmpty()) { + System.out.println("\nCampos faltando no JSON (esperados no DTO):"); + report.getMissingFields().forEach(field -> System.out.println(" - " + field)); + } + + if (!report.getTypeErrors().isEmpty()) { + System.out.println("\nErros de tipo:"); + report.getTypeErrors().forEach((field, error) -> + System.out.println(" - " + field + ": " + error)); + } + } + + System.out.println(); + } } From 7dcef80c2b2aaeca1e636aa6c39ce8540435bb7c Mon Sep 17 00:00:00 2001 From: Rodrigo Aguiar Vidal Cananea Date: Thu, 4 Dec 2025 01:18:43 -0300 Subject: [PATCH 03/20] =?UTF-8?q?Melhorado=20valida=C3=A7=C3=A3o=20de=20ca?= =?UTF-8?q?mpos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../swconsultoria/nfe/ConsultaTributacao.java | 5 ++ .../nfe/dto/ClassificacaoTributariaDTO.java | 41 ++++++++++++-- .../br/com/swconsultoria/nfe/dto/CstDTO.java | 28 ++++++++-- .../swconsultoria/nfe/dto/CstTesteDTO.java | 56 +++++++++++++++++++ .../nfe/exemplos/ConsultaTributacaoTeste.java | 6 +- 5 files changed, 124 insertions(+), 12 deletions(-) create mode 100644 src/test/java/br/com/swconsultoria/nfe/dto/CstTesteDTO.java diff --git a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java index a8c9169f..0a950af3 100644 --- a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java +++ b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java @@ -383,6 +383,11 @@ private static Map> extractDtoFields(Class clazz) { Map> fields = new HashMap<>(); for (Field field : clazz.getDeclaredFields()) { + // Ignora campos static e serialVersionUID + if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) { + continue; + } + JsonProperty annotation = field.getAnnotation(JsonProperty.class); String jsonFieldName; diff --git a/src/main/java/br/com/swconsultoria/nfe/dto/ClassificacaoTributariaDTO.java b/src/main/java/br/com/swconsultoria/nfe/dto/ClassificacaoTributariaDTO.java index 86477003..ff3807e1 100644 --- a/src/main/java/br/com/swconsultoria/nfe/dto/ClassificacaoTributariaDTO.java +++ b/src/main/java/br/com/swconsultoria/nfe/dto/ClassificacaoTributariaDTO.java @@ -1,16 +1,25 @@ package br.com.swconsultoria.nfe.dto; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; +import java.io.Serializable; import java.math.BigDecimal; -@Getter -@Setter +/** + * DTO representando uma Classificação Tributária do CFF. + * Tolerante a mudanças: campos desconhecidos são ignorados automaticamente. + * + * @author Rodrigo Cananea - rodrigo@rcconsultoria. inf.br + */ +@Data @NoArgsConstructor -public class ClassificacaoTributariaDTO { +@JsonIgnoreProperties(ignoreUnknown = true) +public class ClassificacaoTributariaDTO implements Serializable { + + private static final long serialVersionUID = 1L; @JsonProperty("cClassTrib") private String cClassTrib; @@ -36,6 +45,27 @@ public class ClassificacaoTributariaDTO { @JsonProperty("IndEstornoCred") private Boolean indEstornoCred; + @JsonProperty("MonofasiaSujeitaRetencao") + private Boolean monofasiaSujeitaRetencao; + + @JsonProperty("MonofasiaRetidaAnt") + private Boolean monofasiaRetidaAnt; + + @JsonProperty("MonofasiaDiferimento") + private Boolean monofasiaDiferimento; + + @JsonProperty("MonofasiaPadrao") + private Boolean monofasiaPadrao; + + @JsonProperty("Publicacao") + private String publicacao; + + @JsonProperty("InicioVigencia") + private String inicioVigencia; + + @JsonProperty("FimVigencia") + private String fimVigencia; + @JsonProperty("TipoAliquota") private String tipoAliquota; @@ -89,5 +119,4 @@ public class ClassificacaoTributariaDTO { @JsonProperty("Link") private String link; - } diff --git a/src/main/java/br/com/swconsultoria/nfe/dto/CstDTO.java b/src/main/java/br/com/swconsultoria/nfe/dto/CstDTO.java index 14a204ff..4a6208b2 100644 --- a/src/main/java/br/com/swconsultoria/nfe/dto/CstDTO.java +++ b/src/main/java/br/com/swconsultoria/nfe/dto/CstDTO.java @@ -1,16 +1,25 @@ package br.com.swconsultoria.nfe.dto; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; +import lombok.Data; import lombok.NoArgsConstructor; -import lombok.Setter; +import java.io.Serializable; import java.util.List; -@Getter -@Setter +/** + * DTO representando um CST (Código de Situação Tributária) do CFF. + * Tolerante a mudanças: campos desconhecidos são ignorados automaticamente. + * + * @author Rodrigo Cananea - rodrigo@rcconsultoria.inf.br + */ +@Data @NoArgsConstructor -public class CstDTO { +@JsonIgnoreProperties(ignoreUnknown = true) +public class CstDTO implements Serializable { + + private static final long serialVersionUID = 1L; @JsonProperty("CST") private String cst; @@ -42,6 +51,15 @@ public class CstDTO { @JsonProperty("IndCredPresIBSZFM") private Boolean indCredPresIBSZFM; + @JsonProperty("Publicacao") + private String publicacao; + + @JsonProperty("InicioVigencia") + private String inicioVigencia; + + @JsonProperty("FimVigencia") + private String fimVigencia; + @JsonProperty("classificacoesTributarias") private List classificacoesTributarias; } diff --git a/src/test/java/br/com/swconsultoria/nfe/dto/CstTesteDTO.java b/src/test/java/br/com/swconsultoria/nfe/dto/CstTesteDTO.java new file mode 100644 index 00000000..659c20db --- /dev/null +++ b/src/test/java/br/com/swconsultoria/nfe/dto/CstTesteDTO.java @@ -0,0 +1,56 @@ +package br.com.swconsultoria.nfe.dto; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * DTO representando um CST (Código de Situação Tributária) do CFF. + * Tolerante a mudanças: campos desconhecidos são ignorados automaticamente. + * + * @author Rodrigo Cananea - rodrigo@rcconsultoria.inf.br + */ +@Data +@NoArgsConstructor +@JsonIgnoreProperties(ignoreUnknown = true) +public class CstTesteDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @JsonProperty("CST") + private String cst; + + @JsonProperty("DescricaoCST") + private String descricaoCST; + + @JsonProperty("IndIBSCBS") + private Boolean indIBSCBS; + + @JsonProperty("IndRedBC") + private Boolean indRedBC; + + @JsonProperty("IndRedAliq") + private Boolean indRedAliq; + + @JsonProperty("IndTransfCred") + private Boolean indTransfCred; + + @JsonProperty("IndDif") + private Boolean indDif; + + @JsonProperty("IndAjusteCompet") + private Boolean indAjusteCompet; + + @JsonProperty("IndIBSCBSMono") + private Boolean indIBSCBSMono; + + @JsonProperty("IndCredPresIBSZFM") + private Boolean indCredPresIBSZFM; + + @JsonProperty("classificacoesTributarias") + private List classificacoesTributarias; +} diff --git a/src/test/java/br/com/swconsultoria/nfe/exemplos/ConsultaTributacaoTeste.java b/src/test/java/br/com/swconsultoria/nfe/exemplos/ConsultaTributacaoTeste.java index 9e556ef1..ffa668e2 100644 --- a/src/test/java/br/com/swconsultoria/nfe/exemplos/ConsultaTributacaoTeste.java +++ b/src/test/java/br/com/swconsultoria/nfe/exemplos/ConsultaTributacaoTeste.java @@ -4,6 +4,7 @@ import br.com.swconsultoria.nfe.ConsultaTributacao.ValidationReport; import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe; import br.com.swconsultoria.nfe.dto.CstDTO; +import br.com.swconsultoria.nfe.dto.CstTesteDTO; import com.fasterxml.jackson.core.type.TypeReference; import java.util.HashMap; @@ -67,6 +68,9 @@ private static void exemploConversaoDTO(ConfiguracoesNfe config) throws Exceptio if (!lista.isEmpty()) { CstDTO primeiro = lista.get(0); System.out.println("Primeiro CST: " + primeiro.getCst() + " - " + primeiro.getDescricaoCST()); + System.out.println("Publicacao: " + primeiro.getPublicacao()); + System.out.println("inicioVigencia: " + primeiro.getInicioVigencia()); + System.out.println("fimVigencia: " + primeiro.getFimVigencia()); } System.out.println(); @@ -103,7 +107,7 @@ private static void exemploComFiltro(ConfiguracoesNfe config) throws Exception { private static void exemploValidacao(ConfiguracoesNfe config) throws Exception { System.out.println("=== EXEMPLO 4: Validar Estrutura ==="); - ValidationReport report = ConsultaTributacao.validate(config, CstDTO.class); + ValidationReport report = ConsultaTributacao.validate(config, CstTesteDTO.class); if (report.isValid()) { System.out.println("DTO esta 100% compativel com a API"); From 279a672cb869ecc0c2671782bee0fbf16d3e5df2 Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Sat, 6 Dec 2025 20:12:21 -0300 Subject: [PATCH 04/20] Atualizado Schemas --- schemas/DFeTiposBasicos_v1.00.xsd | 468 +++++++++++++----- schemas/leiauteNFe_v4.00.xsd | 43 +- schemas/nfe_v4.00.xsd | 4 +- schemas/tiposBasico_v1.03.xsd | 41 +- .../schema_4/consReciNFe/ObjectFactory.java | 56 +++ .../schema_4/consReciNFe/TAjusteCompet.java | 119 +++++ .../nfe/schema_4/consReciNFe/TCIBS.java | 84 +--- .../nfe/schema_4/consReciNFe/TCompraGov.java | 2 +- .../consReciNFe/TCompraGovReduzido.java | 2 +- .../nfe/schema_4/consReciNFe/TCredPres.java | 34 +- .../schema_4/consReciNFe/TCredPresIBSZFM.java | 39 +- .../schema_4/consReciNFe/TCredPresOper.java | 148 ++++++ .../nfe/schema_4/consReciNFe/TDevTrib.java | 2 +- .../nfe/schema_4/consReciNFe/TDif.java | 4 +- .../schema_4/consReciNFe/TEstornoCred.java | 92 ++++ .../schema_4/consReciNFe/TIBSCBSMonoTot.java | 218 ++++++-- .../nfe/schema_4/consReciNFe/TIBSCBSTot.java | 226 +++++---- .../nfe/schema_4/consReciNFe/TIS.java | 10 +- .../nfe/schema_4/consReciNFe/TISTot.java | 2 +- .../nfe/schema_4/consReciNFe/TMonofasia.java | 80 +-- .../nfe/schema_4/consReciNFe/TNFe.java | 93 +++- .../nfe/schema_4/consReciNFe/TRed.java | 4 +- .../nfe/schema_4/consReciNFe/TTransfCred.java | 4 +- .../nfe/schema_4/consReciNFe/TTribBPe.java | 58 ++- .../nfe/schema_4/consReciNFe/TTribCTe.java | 58 ++- .../schema_4/consReciNFe/TTribCompraGov.java | 12 +- .../nfe/schema_4/consReciNFe/TTribNF3E.java | 58 ++- .../nfe/schema_4/consReciNFe/TTribNFAg.java | 176 +++++++ .../nfe/schema_4/consReciNFe/TTribNFCe.java | 28 ++ .../nfe/schema_4/consReciNFe/TTribNFCom.java | 58 ++- .../nfe/schema_4/consReciNFe/TTribNFGas.java | 206 ++++++++ .../nfe/schema_4/consReciNFe/TTribNFe.java | 116 ++++- .../schema_4/consReciNFe/TTribRegular.java | 12 +- .../nfe/schema_4/enviNFe/ObjectFactory.java | 56 +++ .../nfe/schema_4/enviNFe/TAjusteCompet.java | 119 +++++ .../nfe/schema_4/enviNFe/TCIBS.java | 84 +--- .../nfe/schema_4/enviNFe/TCompraGov.java | 2 +- .../schema_4/enviNFe/TCompraGovReduzido.java | 2 +- .../nfe/schema_4/enviNFe/TCredPres.java | 34 +- .../nfe/schema_4/enviNFe/TCredPresIBSZFM.java | 39 +- .../nfe/schema_4/enviNFe/TCredPresOper.java | 148 ++++++ .../nfe/schema_4/enviNFe/TDevTrib.java | 2 +- .../nfe/schema_4/enviNFe/TDif.java | 4 +- .../nfe/schema_4/enviNFe/TEstornoCred.java | 92 ++++ .../nfe/schema_4/enviNFe/TIBSCBSMonoTot.java | 218 ++++++-- .../nfe/schema_4/enviNFe/TIBSCBSTot.java | 226 +++++---- .../nfe/schema_4/enviNFe/TIS.java | 10 +- .../nfe/schema_4/enviNFe/TISTot.java | 2 +- .../nfe/schema_4/enviNFe/TMonofasia.java | 80 +-- .../nfe/schema_4/enviNFe/TNFe.java | 89 +++- .../nfe/schema_4/enviNFe/TRed.java | 4 +- .../nfe/schema_4/enviNFe/TTransfCred.java | 4 +- .../nfe/schema_4/enviNFe/TTribBPe.java | 58 ++- .../nfe/schema_4/enviNFe/TTribCTe.java | 58 ++- .../nfe/schema_4/enviNFe/TTribCompraGov.java | 12 +- .../nfe/schema_4/enviNFe/TTribNF3E.java | 58 ++- .../nfe/schema_4/enviNFe/TTribNFAg.java | 176 +++++++ .../nfe/schema_4/enviNFe/TTribNFCe.java | 28 ++ .../nfe/schema_4/enviNFe/TTribNFCom.java | 58 ++- .../nfe/schema_4/enviNFe/TTribNFGas.java | 206 ++++++++ .../nfe/schema_4/enviNFe/TTribNFe.java | 116 ++++- .../nfe/schema_4/enviNFe/TTribRegular.java | 12 +- 62 files changed, 3698 insertions(+), 856 deletions(-) create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TAjusteCompet.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPresOper.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TEstornoCred.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFAg.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFGas.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TAjusteCompet.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPresOper.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TEstornoCred.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFAg.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFGas.java diff --git a/schemas/DFeTiposBasicos_v1.00.xsd b/schemas/DFeTiposBasicos_v1.00.xsd index 44e4ec49..a5051dd0 100644 --- a/schemas/DFeTiposBasicos_v1.00.xsd +++ b/schemas/DFeTiposBasicos_v1.00.xsd @@ -1,5 +1,5 @@ - + @@ -37,7 +37,7 @@ - + Tipo Decimal com 15 dígitos, sendo 11 de corpo e 4 decimais @@ -46,7 +46,7 @@ - + Tipo Decimal com 11 inteiros, podendo ter 4 decimais (utilizado em tags opcionais) @@ -55,7 +55,7 @@ - + Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais @@ -64,7 +64,7 @@ - + Tipo Decimal com até 3 dígitos inteiros, podendo ter de 2 até 4 decimais @@ -107,6 +107,14 @@ + + + Tipo Indicador de Doação + + + + + Grupo de informações da Tributação da NFCom @@ -118,7 +126,17 @@ + + + Indica se a operação é de doação + + + + + Informado conforme indicador no cClassTrib + + @@ -132,7 +150,37 @@ + + + Indica se a operação é de doação + + + + + + Informado conforme indicador no cClassTrib + + + + + + + Grupo de informações da Tributação da NFAg + + + + + Código Situação Tributária do IBS/CBS + + + + + + + Informado conforme indicador no cClassTrib + + @@ -146,7 +194,13 @@ + + + + Informado conforme indicador no cClassTrib + + @@ -160,7 +214,13 @@ + + + + Informado conforme indicador no cClassTrib + + @@ -174,6 +234,11 @@ + + + Indica se a operação é de doação + + @@ -191,11 +256,16 @@ + + + Indica se a operação é de doação + + - Informar essa opção da Choice para Monofasia + Informar essa opção da Choice para Monofasia (CST 620) @@ -203,10 +273,54 @@ Informar essa opção da Choice para o CST 800 + + + Informar essa opção da Choice para o CST 811 + + - + - Classificação de acordo com o art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido na ZFM + Informado conforme indicador no cClassTrib + + + + + + Crédito Presumido da Operação. Informado conforme indicador no cClassTrib. + + + + + Classificação de acordo com o art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido na ZFM. Informado conforme indicador no cClassTrib. + + + + + + + + Grupo de informações da Tributação da NFGas + + + + + Código Situação Tributária do IBS/CBS + + + + + + + + + Informar essa opção da Choice para Monofasia + + + + + + Informado conforme indicador no cClassTrib @@ -223,17 +337,17 @@ - + Valor do BC - + Alíquota do Imposto Seletivo (percentual) - + Alíquota do Imposto Seletivo (por valor) @@ -250,13 +364,13 @@ - + Quantidade com abse no campo uTrib informado - + Valor do Imposto Seletivo calculado @@ -269,7 +383,7 @@ Grupo de informações de totais do Imposto Seletivo - + Valor Total do Imposto Seletivo @@ -281,7 +395,7 @@ Grupo de informações de totais da CBS/IBS - + Total Base de Calculo @@ -298,17 +412,17 @@ - + Total do Diferimento - + Total de devoluções de tributos - + Valor total do IBS Estadual @@ -322,17 +436,17 @@ - + Total do Diferimento - + Total de devoluções de tributos - + Valor total do IBS Municipal @@ -340,21 +454,11 @@ - + Valor total do IBS - - - Total do Crédito Presumido - - - - - Total do Crédito Presumido Condição Suspensiva - - @@ -364,29 +468,38 @@ - + Total do Diferimento - + Total de devoluções de tributos - + Valor total da CBS - + + + + + + Totalização do estorno de crédito + + + + - Total do Crédito Presumido + Valor total do IBS estornado - + - Total do Crédito Presumido Condição Suspensiva + Valor total da CBS estornada @@ -399,7 +512,7 @@ Grupo de informações de totais da CBS/IBS com monofasia - + Total Base de Calculo @@ -416,17 +529,17 @@ - + Total do Diferimento - + Total de devoluções de tributos - + Valor total do IBS Estadual @@ -440,17 +553,17 @@ - + Total do Diferimento - + Total de devoluções de tributos - + Valor total do IBS Municipal @@ -458,17 +571,17 @@ - + Valor total do IBS - + Total do Crédito Presumido - + Total do Crédito Presumido Condição Suspensiva @@ -482,27 +595,27 @@ - + Total do Diferimento - + Total de devoluções de tributos - + Valor total da CBS - + Total do Crédito Presumido - + Total do Crédito Presumido Condição Suspensiva @@ -517,32 +630,32 @@ - + Valor total do IBS monofásico - + Valor total da CBS monofásica - + Valor total do IBS monofásico sujeito a retenção - + Valor total da CBS monofásica sujeita a retenção - + Valor do IBS monofásico retido anteriormente - + Valor da CBS monofásica retida anteriormente @@ -550,6 +663,25 @@ + + + Totalização do estorno de crédito + + + + + + Valor total do IBS estornado + + + + + Valor total da CBS estornada + + + + + @@ -566,27 +698,27 @@ - + Quantidade tributada na monofasia - + Alíquota ad rem do IBS - + Alíquota ad rem da CBS - + Valor do IBS monofásico - + Valor da CBS monofásica @@ -600,27 +732,27 @@ - + Quantidade tributada sujeita a retenção. - + Alíquota ad rem do IBS sujeito a retenção - + Valor do IBS monofásico sujeito a retenção - + Alíquota ad rem da CBS sujeita a retenção - + Valor da CBS monofásica sujeita a retenção @@ -634,27 +766,27 @@ - + Quantidade tributada retida anteriormente - + Alíquota ad rem do IBS retido anteriormente - + Valor do IBS retido anteriormente - + Alíquota ad rem da CBS retida anteriormente - + Valor da CBS retida anteriormente @@ -668,22 +800,22 @@ - + Percentual do diferimento do imposto monofásico - + Valor do IBS monofásico diferido - + Percentual do diferimento do imposto monofásico - + Valor da CBS monofásica diferida @@ -691,12 +823,12 @@ - + Total de IBS monofásico do item - + Total da CBS monofásica do item @@ -711,7 +843,7 @@ IBS / CBS - + Valor do BC @@ -723,9 +855,9 @@ - + - Aliquota do IBS de competência das UF + Aliquota do IBS de competência das UF (em percentual) @@ -743,7 +875,7 @@ Grupo de campos da redução de aliquota - + Valor do IBS de competência das UF @@ -757,9 +889,9 @@ - + - Aliquota do IBS Municipal + Aliquota do IBS Municipal (em percentual) @@ -777,7 +909,7 @@ Grupo de campos da redução de aliquota - + Valor do IBS Municipal @@ -785,7 +917,7 @@ - + Valor do IBS @@ -797,9 +929,9 @@ - + - Aliquota da CBS + Aliquota da CBS (em percentual) @@ -817,7 +949,7 @@ Grupo de campos da redução de aliquota - + Valor da CBS @@ -830,16 +962,6 @@ Grupo de informações da Tributação Regular. Informar como seria a tributação caso não cumprida a condição resolutória/suspensiva. Exemplo 1: Art. 442, §4. Operações com ZFM e ALC. Exemplo 2: Operações com suspensão do tributo. - - - Grupo de Informações do Crédito Presumido referente ao IBS, quando aproveitado pelo emitente do documento. - - - - - Grupo de Informações do Crédito Presumido referente a CBS, quando aproveitado pelo emitente do documento. - - Grupo de informações da composição do valor do IBS e da CBS em compras governamental @@ -852,14 +974,14 @@ Tipo Redução Base de Cálculo - + Percentual de redução de aliquota do cClassTrib - + - Aliquota Efetiva que será aplicada a Base de Calculo + Aliquota Efetiva que será aplicada a Base de Calculo (em percentual) @@ -869,23 +991,18 @@ Tipo Crédito Presumido - - - Código de Classificação do Crédito Presumido do IBS e da CBS - - - + Percentual do Crédito Presumido - + Valor do Crédito Presumido - + Valor do Crédito Presumido Condição Suspensiva, preencher apenas para cCredPres que possui indicação de Condição Suspensiva @@ -898,12 +1015,12 @@ Tipo Diferimento - + Percentual do diferimento - + Valor do diferimento @@ -915,7 +1032,7 @@ Tipo Devolução Tributo - + Valor do tributo devolvido. No fornecimento de energia elétrica, água, esgoto e gás natural e em outras hipóteses definidas no regulamento @@ -939,37 +1056,37 @@ gás natural e em outras hipóteses definidas no regulamento Informar qual seria o cClassTrib caso não cumprida a condição resolutória/suspensiva - + Alíquota do IBS da UF Informar como seria a Alíquota caso não cumprida a condição resolutória/suspensiva - + Valor do IBS da UF Informar como seria o valor do Tributo caso não cumprida a condição resolutória/suspensiva - + Alíquota do IBS do Município Informar como seria a Alíquota caso não cumprida a condição resolutória/suspensiva - + Valor do IBS do Município Informar como seria o valor do Tributo caso não cumprida a condição resolutória/suspensiva - + Alíquota da CBS Informar como seria a Alíquota caso não cumprida a condição resolutória/suspensiva - + Valor da CBS Informar como seria o valor do Tributo caso não cumprida a condição resolutória/suspensiva @@ -982,20 +1099,20 @@ gás natural e em outras hipóteses definidas no regulamento Tipo Tributação Compra Governamental - - + + Valor que seria devido a UF, sem aplicação do Art. 473. da LC 214/2025 - - + + Valor que seria devido ao município, sem aplicação do Art. 473. da LC 214/2025 - - + + Valor que seria devido a CBS, sem aplicação do Art. 473. da LC 214/2025 @@ -1017,9 +1134,9 @@ gás natural e em outras hipóteses definidas no regulamento 4=Municípios - + - Percentual de redução de aliquota em compra goverrnamental + Percentual de redução de aliquota em compra governamental @@ -1039,9 +1156,9 @@ gás natural e em outras hipóteses definidas no regulamento 4=Municípios - + - Percentual de redução de aliquota em compra goverrnamental + Percentual de redução de aliquota em compra governamental @@ -1058,23 +1175,102 @@ gás natural e em outras hipóteses definidas no regulamento Tipo Transferência de Crédito - + Valor do IBS a ser transferido - + Valor da CBS a ser transferida + + + Tipo Estorno de Crédito + + + + + Valor do IBS a ser estornado + + + + + Valor da CBS a ser estornada + + + + + + + Ano e mês referência do período de apuração (AAAA-MM) + + + + + + + + Tipo Ajuste de Competência + + + + + Ano e mês referência do período de apuração (AAAA-MM) + + + + + Valor do IBS + + + + + Valor da CBS + + + + + + + Tipo Crédito Presumido da Operação + + + + + Valor da Base de Cálculo do Crédito Presumido da Operação + + + + + Código de Classificação do Crédito Presumido do IBS e da CBS + + + + + Grupo de Informações do Crédito Presumido referente ao IBS, quando aproveitado pelo emitente do documento. + + + + + Grupo de Informações do Crédito Presumido referente a CBS, quando aproveitado pelo emitente do documento. + + + + Tipo Informações do crédito presumido de IBS para fornecimentos a partir da ZFM + + + Ano e mês referência do período de apuração (AAAA-MM) + + Classificação de acordo com o art. 450, § 1º, da LC 214/25 para o cálculo do crédito presumido na ZFM @@ -1087,11 +1283,11 @@ OBS: Percentuais definidos no art. 450, § 1º, da LC 214/25 para o cálculo do - + Valor do crédito presumido calculado sobre o saldo devedor apurado - + \ No newline at end of file diff --git a/schemas/leiauteNFe_v4.00.xsd b/schemas/leiauteNFe_v4.00.xsd index e5e74553..7393b031 100644 --- a/schemas/leiauteNFe_v4.00.xsd +++ b/schemas/leiauteNFe_v4.00.xsd @@ -19,8 +19,8 @@ + xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.portalfiscal.inf.br/nfe" + elementFormDefault="qualified" attributeFormDefault="unqualified"> @@ -96,6 +96,11 @@ SCAN 900-999 Data e Hora da saída ou de entrada da mercadoria / produto (AAAA-MM-DDTHH:mm:ssTZD) + + + Data da previsão de entrega ou disponibilização do bem (AAAA-MM-DD) + + Tipo do Documento Fiscal (0 - entrada; 1 - saída) @@ -206,13 +211,7 @@ Campo preenchido somente quando “indPres = 5 (Operação presencial, fora do e - Tipo de Nota de Débito: -01=Transferência de créditos para Cooperativas; -02=Anulação de Crédito por Saídas Imunes/Isentas; -03=Débitos de notas fiscais não processadas na apuração; -04=Multa e juros; -05=Transferência de crédito de sucessão. - + Tipo de Nota de Débito @@ -995,6 +994,11 @@ Formato ”CFOP9999”. + + + Classificação para subapuração do IBS na ZFM + + Código EX TIPI (3 posições) @@ -7347,7 +7351,15 @@ alterado para tamanho variavel 1-4. (NT2011/004) - Tipo de Nota de Débito: 01=Transferência de créditos para Cooperativas; 02=Anulação de Crédito por Saídas Imunes/Isentas; 03=Débitos de notas fiscais não processadas na apuração; 04=Multa e juros; 05=Transferência de crédito de sucessão); 06=Pagamento antecipado; 07=Perda em estoque + Tipo de Nota de Débito: + 01=Transferência de créditos para Cooperativas; + 02=Anulação de Crédito por Saídas Imunes/Isentas; + 03=Débitos de notas fiscais não processadas na apuração; + 04=Multa e juros; + 05=Transferência de crédito na sucessão; + 06=Pagamento antecipado; + 07=Perda em estoque; + 08=Desenquadramento do SN; @@ -7358,17 +7370,26 @@ alterado para tamanho variavel 1-4. (NT2011/004) + - Tipo de Nota de Crédito: 01=Multa e juros; 02=Apropriação de crédito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25); 03=Retorno + Tipo de Nota de Crédito: + 01=Multa e juros; + 02=Apropriação de crédito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25); + 03=Retorno por recusa na entrega ou por não localização do destinatário na tentativa de entrega; + 04=Redução de valores; + 05=Transferência de crédito na sucessão; + + + diff --git a/schemas/nfe_v4.00.xsd b/schemas/nfe_v4.00.xsd index 29e7d742..c934ca2b 100644 --- a/schemas/nfe_v4.00.xsd +++ b/schemas/nfe_v4.00.xsd @@ -1,8 +1,8 @@ + targetNamespace="http://www.portalfiscal.inf.br/nfe" elementFormDefault="qualified" + attributeFormDefault="unqualified"> diff --git a/schemas/tiposBasico_v1.03.xsd b/schemas/tiposBasico_v1.03.xsd index 780236b1..1f9c9904 100644 --- a/schemas/tiposBasico_v1.03.xsd +++ b/schemas/tiposBasico_v1.03.xsd @@ -1,5 +1,4 @@ - @@ -45,6 +44,15 @@ + + + Tipo correspondente ao atributo “nItem” + + + + + + Tipo Código do Município da tabela do IBGE @@ -69,7 +77,7 @@ - + @@ -808,10 +816,37 @@ acrescentado: + + + Tipo Decimal com até 3 dígitos inteiros, podendo ter de 2 até 4 decimais + + + + + + + + + Tipo Decimal com até 15 dígitos, sendo 11 de corpo e até 4 decimais, aceitando valores negativos + + + + + + + + + Tipo Decimal com 15 dígitos, sendo 13 de corpo e 2 decimais + + + + + + - + diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/ObjectFactory.java index b3923df4..a3ff97c0 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/ObjectFactory.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/ObjectFactory.java @@ -366,6 +366,14 @@ public TEnderEmi createTEnderEmi() { return new TEnderEmi(); } + /** + * Create an instance of {@link TCredPresOper } + * + */ + public TCredPresOper createTCredPresOper() { + return new TCredPresOper(); + } + /** * Create an instance of {@link TEndereco } * @@ -398,6 +406,14 @@ public TEnviNFe createTEnviNFe() { return new TEnviNFe(); } + /** + * Create an instance of {@link TAjusteCompet } + * + */ + public TAjusteCompet createTAjusteCompet() { + return new TAjusteCompet(); + } + /** * Create an instance of {@link TNfeProc } * @@ -446,6 +462,14 @@ public TVeiculo createTVeiculo() { return new TVeiculo(); } + /** + * Create an instance of {@link TTribNFAg } + * + */ + public TTribNFAg createTTribNFAg() { + return new TTribNFAg(); + } + /** * Create an instance of {@link TCompraGovReduzido } * @@ -478,6 +502,14 @@ public TRed createTRed() { return new TRed(); } + /** + * Create an instance of {@link TTribNFGas } + * + */ + public TTribNFGas createTTribNFGas() { + return new TTribNFGas(); + } + /** * Create an instance of {@link TTribNF3E } * @@ -526,6 +558,14 @@ public TTribRegular createTTribRegular() { return new TTribRegular(); } + /** + * Create an instance of {@link TEstornoCred } + * + */ + public TEstornoCred createTEstornoCred() { + return new TEstornoCred(); + } + /** * Create an instance of {@link TRetConsReciNFe } * @@ -1262,6 +1302,14 @@ public TIBSCBSMonoTot.GMono createTIBSCBSMonoTotGMono() { return new TIBSCBSMonoTot.GMono(); } + /** + * Create an instance of {@link TIBSCBSMonoTot.GEstornoCred } + * + */ + public TIBSCBSMonoTot.GEstornoCred createTIBSCBSMonoTotGEstornoCred() { + return new TIBSCBSMonoTot.GEstornoCred(); + } + /** * Create an instance of {@link TIBSCBSMonoTot.GIBS.GIBSUF } * @@ -1294,6 +1342,14 @@ public TIBSCBSTot.GCBS createTIBSCBSTotGCBS() { return new TIBSCBSTot.GCBS(); } + /** + * Create an instance of {@link TIBSCBSTot.GEstornoCred } + * + */ + public TIBSCBSTot.GEstornoCred createTIBSCBSTotGEstornoCred() { + return new TIBSCBSTot.GEstornoCred(); + } + /** * Create an instance of {@link TIBSCBSTot.GIBS.GIBSUF } * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TAjusteCompet.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TAjusteCompet.java new file mode 100644 index 00000000..46c774ac --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TAjusteCompet.java @@ -0,0 +1,119 @@ + +package br.com.swconsultoria.nfe.schema_4.consReciNFe; + +import javax.xml.bind.annotation.*; +import javax.xml.datatype.XMLGregorianCalendar; + + +/** + * Tipo Ajuste de Competência + * + *

Classe Java de TAjusteCompet complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TAjusteCompet">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="competApur" type="{http://www.portalfiscal.inf.br/nfe}TCompetApur"/>
+ *         <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+ *         <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TAjusteCompet", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "competApur", + "vibs", + "vcbs" +}) +public class TAjusteCompet { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + @XmlSchemaType(name = "gYearMonth") + protected XMLGregorianCalendar competApur; + @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibs; + @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbs; + + /** + * Obtém o valor da propriedade competApur. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getCompetApur() { + return competApur; + } + + /** + * Define o valor da propriedade competApur. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setCompetApur(XMLGregorianCalendar value) { + this.competApur = value; + } + + /** + * Obtém o valor da propriedade vibs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBS() { + return vibs; + } + + /** + * Define o valor da propriedade vibs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBS(String value) { + this.vibs = value; + } + + /** + * Obtém o valor da propriedade vcbs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBS() { + return vcbs; + } + + /** + * Define o valor da propriedade vcbs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBS(String value) { + this.vcbs = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCIBS.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCIBS.java index ecb95276..02681419 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCIBS.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCIBS.java @@ -19,18 +19,18 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vBC" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vBC" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * <sequence> * <element name="gIBSUF"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -41,36 +41,34 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * <element name="gCBS"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> * <element name="gTribRegular" type="{http://www.portalfiscal.inf.br/nfe}TTribRegular" minOccurs="0"/> - * <element name="gIBSCredPres" type="{http://www.portalfiscal.inf.br/nfe}TCredPres" minOccurs="0"/> - * <element name="gCBSCredPres" type="{http://www.portalfiscal.inf.br/nfe}TCredPres" minOccurs="0"/> * <element name="gTribCompraGov" type="{http://www.portalfiscal.inf.br/nfe}TTribCompraGov" minOccurs="0"/> * </sequence> * </restriction> @@ -88,8 +86,6 @@ "vibs", "gcbs", "gTribRegular", - "gibsCredPres", - "gcbsCredPres", "gTribCompraGov" }) public class TCIBS { @@ -106,10 +102,6 @@ public class TCIBS { protected TCIBS.GCBS gcbs; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected TTribRegular gTribRegular; - @XmlElement(name = "gIBSCredPres", namespace = "http://www.portalfiscal.inf.br/nfe") - protected TCredPres gibsCredPres; - @XmlElement(name = "gCBSCredPres", namespace = "http://www.portalfiscal.inf.br/nfe") - protected TCredPres gcbsCredPres; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected TTribCompraGov gTribCompraGov; @@ -257,54 +249,6 @@ public void setGTribRegular(TTribRegular value) { this.gTribRegular = value; } - /** - * Obtém o valor da propriedade gibsCredPres. - * - * @return - * possible object is - * {@link TCredPres } - * - */ - public TCredPres getGIBSCredPres() { - return gibsCredPres; - } - - /** - * Define o valor da propriedade gibsCredPres. - * - * @param value - * allowed object is - * {@link TCredPres } - * - */ - public void setGIBSCredPres(TCredPres value) { - this.gibsCredPres = value; - } - - /** - * Obtém o valor da propriedade gcbsCredPres. - * - * @return - * possible object is - * {@link TCredPres } - * - */ - public TCredPres getGCBSCredPres() { - return gcbsCredPres; - } - - /** - * Define o valor da propriedade gcbsCredPres. - * - * @param value - * allowed object is - * {@link TCredPres } - * - */ - public void setGCBSCredPres(TCredPres value) { - this.gcbsCredPres = value; - } - /** * Obtém o valor da propriedade gTribCompraGov. * @@ -340,11 +284,11 @@ public void setGTribCompraGov(TTribCompraGov value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -507,11 +451,11 @@ public void setVCBS(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -674,11 +618,11 @@ public void setVIBSMun(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCompraGov.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCompraGov.java index cbf8fd60..d07e1e79 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCompraGov.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCompraGov.java @@ -20,7 +20,7 @@ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="tpEnteGov" type="{http://www.portalfiscal.inf.br/nfe}TEnteGov"/> - * <element name="pRedutor" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pRedutor" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="tpOperGov" type="{http://www.portalfiscal.inf.br/nfe}TOperCompraGov"/> * </sequence> * </restriction> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCompraGovReduzido.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCompraGovReduzido.java index 712eac3a..c8d61c15 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCompraGovReduzido.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCompraGovReduzido.java @@ -20,7 +20,7 @@ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="tpEnteGov" type="{http://www.portalfiscal.inf.br/nfe}TEnteGov"/> - * <element name="pRedutor" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pRedutor" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPres.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPres.java index eb40e006..857dff43 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPres.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPres.java @@ -19,11 +19,10 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="cCredPres" type="{http://www.portalfiscal.inf.br/nfe}TcCredPres"/> - * <element name="pCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <choice> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </choice> * </sequence> * </restriction> @@ -35,15 +34,12 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "TCredPres", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { - "cCredPres", "pCredPres", "vCredPres", "vCredPresCondSus" }) public class TCredPres { - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) - protected String cCredPres; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String pCredPres; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") @@ -51,30 +47,6 @@ public class TCredPres { @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected String vCredPresCondSus; - /** - * Obtém o valor da propriedade cCredPres. - * - * @return - * possible object is - * {@link String } - * - */ - public String getCCredPres() { - return cCredPres; - } - - /** - * Define o valor da propriedade cCredPres. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setCCredPres(String value) { - this.cCredPres = value; - } - /** * Obtém o valor da propriedade pCredPres. * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPresIBSZFM.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPresIBSZFM.java index b56d4fad..ce2d3ed0 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPresIBSZFM.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPresIBSZFM.java @@ -1,10 +1,8 @@ package br.com.swconsultoria.nfe.schema_4.consReciNFe; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.*; +import javax.xml.datatype.XMLGregorianCalendar; /** @@ -19,8 +17,9 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> + * <element name="competApur" type="{http://www.portalfiscal.inf.br/nfe}TCompetApur"/> * <element name="tpCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TTpCredPresIBSZFM"/> - * <element name="vCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TDec1302" minOccurs="0"/> + * <element name="vCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -31,16 +30,44 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "TCredPresIBSZFM", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "competApur", "tpCredPresIBSZFM", "vCredPresIBSZFM" }) public class TCredPresIBSZFM { + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + @XmlSchemaType(name = "gYearMonth") + protected XMLGregorianCalendar competApur; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String tpCredPresIBSZFM; - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String vCredPresIBSZFM; + /** + * Obtém o valor da propriedade competApur. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getCompetApur() { + return competApur; + } + + /** + * Define o valor da propriedade competApur. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setCompetApur(XMLGregorianCalendar value) { + this.competApur = value; + } + /** * Obtém o valor da propriedade tpCredPresIBSZFM. * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPresOper.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPresOper.java new file mode 100644 index 00000000..ee39f64f --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TCredPresOper.java @@ -0,0 +1,148 @@ + +package br.com.swconsultoria.nfe.schema_4.consReciNFe; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + * Tipo Crédito Presumido da Operação + * + *

Classe Java de TCredPresOper complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TCredPresOper">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="vBCCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+ *         <element name="cCredPres" type="{http://www.portalfiscal.inf.br/nfe}TcCredPres"/>
+ *         <element name="gIBSCredPres" type="{http://www.portalfiscal.inf.br/nfe}TCredPres" minOccurs="0"/>
+ *         <element name="gCBSCredPres" type="{http://www.portalfiscal.inf.br/nfe}TCredPres" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TCredPresOper", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "vbcCredPres", + "cCredPres", + "gibsCredPres", + "gcbsCredPres" +}) +public class TCredPresOper { + + @XmlElement(name = "vBCCredPres", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vbcCredPres; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cCredPres; + @XmlElement(name = "gIBSCredPres", namespace = "http://www.portalfiscal.inf.br/nfe") + protected TCredPres gibsCredPres; + @XmlElement(name = "gCBSCredPres", namespace = "http://www.portalfiscal.inf.br/nfe") + protected TCredPres gcbsCredPres; + + /** + * Obtém o valor da propriedade vbcCredPres. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVBCCredPres() { + return vbcCredPres; + } + + /** + * Define o valor da propriedade vbcCredPres. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVBCCredPres(String value) { + this.vbcCredPres = value; + } + + /** + * Obtém o valor da propriedade cCredPres. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCCredPres() { + return cCredPres; + } + + /** + * Define o valor da propriedade cCredPres. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCCredPres(String value) { + this.cCredPres = value; + } + + /** + * Obtém o valor da propriedade gibsCredPres. + * + * @return + * possible object is + * {@link TCredPres } + * + */ + public TCredPres getGIBSCredPres() { + return gibsCredPres; + } + + /** + * Define o valor da propriedade gibsCredPres. + * + * @param value + * allowed object is + * {@link TCredPres } + * + */ + public void setGIBSCredPres(TCredPres value) { + this.gibsCredPres = value; + } + + /** + * Obtém o valor da propriedade gcbsCredPres. + * + * @return + * possible object is + * {@link TCredPres } + * + */ + public TCredPres getGCBSCredPres() { + return gcbsCredPres; + } + + /** + * Define o valor da propriedade gcbsCredPres. + * + * @param value + * allowed object is + * {@link TCredPres } + * + */ + public void setGCBSCredPres(TCredPres value) { + this.gcbsCredPres = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TDevTrib.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TDevTrib.java index 7737ef63..5fa18493 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TDevTrib.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TDevTrib.java @@ -19,7 +19,7 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TDif.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TDif.java index 2bc4d212..e614408e 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TDif.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TDif.java @@ -19,8 +19,8 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pDif" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="pDif" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TEstornoCred.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TEstornoCred.java new file mode 100644 index 00000000..cd003d1a --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TEstornoCred.java @@ -0,0 +1,92 @@ + +package br.com.swconsultoria.nfe.schema_4.consReciNFe; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + * Tipo Estorno de Crédito + * + *

Classe Java de TEstornoCred complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TEstornoCred">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="vIBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+ *         <element name="vCBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TEstornoCred", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "vibsEstCred", + "vcbsEstCred" +}) +public class TEstornoCred { + + @XmlElement(name = "vIBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibsEstCred; + @XmlElement(name = "vCBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbsEstCred; + + /** + * Obtém o valor da propriedade vibsEstCred. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBSEstCred() { + return vibsEstCred; + } + + /** + * Define o valor da propriedade vibsEstCred. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBSEstCred(String value) { + this.vibsEstCred = value; + } + + /** + * Obtém o valor da propriedade vcbsEstCred. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBSEstCred() { + return vcbsEstCred; + } + + /** + * Define o valor da propriedade vcbsEstCred. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBSEstCred(String value) { + this.vcbsEstCred = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIBSCBSMonoTot.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIBSCBSMonoTot.java index e8bb533c..57d539d2 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIBSCBSMonoTot.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIBSCBSMonoTot.java @@ -19,7 +19,7 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vBCIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vBCIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * <element name="gIBS" minOccurs="0"> * <complexType> * <complexContent> @@ -30,9 +30,9 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -43,17 +43,17 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -64,11 +64,11 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -79,12 +79,24 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="gEstornoCred" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="vIBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -103,7 +115,8 @@ "vbcibscbs", "gibs", "gcbs", - "gMono" + "gMono", + "gEstornoCred" }) public class TIBSCBSMonoTot { @@ -115,6 +128,8 @@ public class TIBSCBSMonoTot { protected TIBSCBSMonoTot.GCBS gcbs; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected TIBSCBSMonoTot.GMono gMono; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TIBSCBSMonoTot.GEstornoCred gEstornoCred; /** * Obtém o valor da propriedade vbcibscbs. @@ -212,6 +227,30 @@ public void setGMono(TIBSCBSMonoTot.GMono value) { this.gMono = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TIBSCBSMonoTot.GEstornoCred } + * + */ + public TIBSCBSMonoTot.GEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TIBSCBSMonoTot.GEstornoCred } + * + */ + public void setGEstornoCred(TIBSCBSMonoTot.GEstornoCred value) { + this.gEstornoCred = value; + } + /** *

Classe Java de anonymous complex type. @@ -223,11 +262,11 @@ public void setGMono(TIBSCBSMonoTot.GMono value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -380,6 +419,89 @@ public void setVCredPresCondSus(String value) { } + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+     *         <element name="vCBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+     *       </sequence>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibsEstCred", + "vcbsEstCred" + }) + public static class GEstornoCred { + + @XmlElement(name = "vIBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibsEstCred; + @XmlElement(name = "vCBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbsEstCred; + + /** + * Obtém o valor da propriedade vibsEstCred. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBSEstCred() { + return vibsEstCred; + } + + /** + * Define o valor da propriedade vibsEstCred. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBSEstCred(String value) { + this.vibsEstCred = value; + } + + /** + * Obtém o valor da propriedade vcbsEstCred. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBSEstCred() { + return vcbsEstCred; + } + + /** + * Define o valor da propriedade vcbsEstCred. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBSEstCred(String value) { + this.vcbsEstCred = value; + } + + } + + /** *

Classe Java de anonymous complex type. * @@ -395,9 +517,9 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -408,17 +530,17 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -579,9 +701,9 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -690,9 +812,9 @@ public void setVIBSMun(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -803,12 +925,12 @@ public void setVIBSUF(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIBSCBSTot.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIBSCBSTot.java index cb50dffc..454f466b 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIBSCBSTot.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIBSCBSTot.java @@ -19,7 +19,7 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vBCIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vBCIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * <element name="gIBS"> * <complexType> * <complexContent> @@ -30,9 +30,9 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -43,17 +43,15 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -64,11 +62,21 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="gEstornoCred" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="vIBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -86,7 +94,8 @@ @XmlType(name = "TIBSCBSTot", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "vbcibscbs", "gibs", - "gcbs" + "gcbs", + "gEstornoCred" }) public class TIBSCBSTot { @@ -96,6 +105,8 @@ public class TIBSCBSTot { protected TIBSCBSTot.GIBS gibs; @XmlElement(name = "gCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected TIBSCBSTot.GCBS gcbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TIBSCBSTot.GEstornoCred gEstornoCred; /** * Obtém o valor da propriedade vbcibscbs. @@ -169,6 +180,30 @@ public void setGCBS(TIBSCBSTot.GCBS value) { this.gcbs = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TIBSCBSTot.GEstornoCred } + * + */ + public TIBSCBSTot.GEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TIBSCBSTot.GEstornoCred } + * + */ + public void setGEstornoCred(TIBSCBSTot.GEstornoCred value) { + this.gEstornoCred = value; + } + /** *

Classe Java de anonymous complex type. @@ -180,11 +215,9 @@ public void setGCBS(TIBSCBSTot.GCBS value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -197,9 +230,7 @@ public void setGCBS(TIBSCBSTot.GCBS value) { @XmlType(name = "", propOrder = { "vDif", "vDevTrib", - "vcbs", - "vCredPres", - "vCredPresCondSus" + "vcbs" }) public static class GCBS { @@ -209,10 +240,6 @@ public static class GCBS { protected String vDevTrib; @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String vcbs; - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) - protected String vCredPres; - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) - protected String vCredPresCondSus; /** * Obtém o valor da propriedade vDif. @@ -286,52 +313,87 @@ public void setVCBS(String value) { this.vcbs = value; } + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+     *         <element name="vCBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+     *       </sequence>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibsEstCred", + "vcbsEstCred" + }) + public static class GEstornoCred { + + @XmlElement(name = "vIBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibsEstCred; + @XmlElement(name = "vCBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbsEstCred; + /** - * Obtém o valor da propriedade vCredPres. + * Obtém o valor da propriedade vibsEstCred. * * @return * possible object is * {@link String } * */ - public String getVCredPres() { - return vCredPres; + public String getVIBSEstCred() { + return vibsEstCred; } /** - * Define o valor da propriedade vCredPres. + * Define o valor da propriedade vibsEstCred. * * @param value * allowed object is * {@link String } * */ - public void setVCredPres(String value) { - this.vCredPres = value; + public void setVIBSEstCred(String value) { + this.vibsEstCred = value; } /** - * Obtém o valor da propriedade vCredPresCondSus. + * Obtém o valor da propriedade vcbsEstCred. * * @return * possible object is * {@link String } * */ - public String getVCredPresCondSus() { - return vCredPresCondSus; + public String getVCBSEstCred() { + return vcbsEstCred; } /** - * Define o valor da propriedade vCredPresCondSus. + * Define o valor da propriedade vcbsEstCred. * * @param value * allowed object is * {@link String } * */ - public void setVCredPresCondSus(String value) { - this.vCredPresCondSus = value; + public void setVCBSEstCred(String value) { + this.vcbsEstCred = value; } } @@ -352,9 +414,9 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -365,17 +427,15 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -388,9 +448,7 @@ public void setVCredPresCondSus(String value) { @XmlType(name = "", propOrder = { "gibsuf", "gibsMun", - "vibs", - "vCredPres", - "vCredPresCondSus" + "vibs" }) public static class GIBS { @@ -400,10 +458,6 @@ public static class GIBS { protected TIBSCBSTot.GIBS.GIBSMun gibsMun; @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String vibs; - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) - protected String vCredPres; - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) - protected String vCredPresCondSus; /** * Obtém o valor da propriedade gibsuf. @@ -477,54 +531,6 @@ public void setVIBS(String value) { this.vibs = value; } - /** - * Obtém o valor da propriedade vCredPres. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVCredPres() { - return vCredPres; - } - - /** - * Define o valor da propriedade vCredPres. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVCredPres(String value) { - this.vCredPres = value; - } - - /** - * Obtém o valor da propriedade vCredPresCondSus. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVCredPresCondSus() { - return vCredPresCondSus; - } - - /** - * Define o valor da propriedade vCredPresCondSus. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVCredPresCondSus(String value) { - this.vCredPresCondSus = value; - } - /** *

Classe Java de anonymous complex type. @@ -536,9 +542,9 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -647,9 +653,9 @@ public void setVIBSMun(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIS.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIS.java index 83f92724..bf7b689d 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIS.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TIS.java @@ -22,9 +22,9 @@ * <element name="CSTIS" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTribIS" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> * <sequence minOccurs="0"> - * <element name="vBCIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pIS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="pISEspec" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04" minOccurs="0"/> + * <element name="vBCIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pIS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="pISEspec" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC" minOccurs="0"/> * <sequence minOccurs="0"> * <element name="uTrib"> * <simpleType> @@ -34,9 +34,9 @@ * </restriction> * </simpleType> * </element> - * <element name="qTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> + * <element name="qTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104OpRTC"/> * </sequence> - * <element name="vIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </sequence> * </restriction> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TISTot.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TISTot.java index b148a6a0..cc47435c 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TISTot.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TISTot.java @@ -19,7 +19,7 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TMonofasia.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TMonofasia.java index 2fbf7796..b0987627 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TMonofasia.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TMonofasia.java @@ -24,11 +24,11 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMono" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="adRemCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="adRemCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -39,11 +39,11 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="adRemCBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="adRemCBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -54,11 +54,11 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="adRemCBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="adRemCBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -69,17 +69,17 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pDifIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pDifCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="pDifIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pDifCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vTotIBSMonoItem" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vTotCBSMonoItem" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vTotIBSMonoItem" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vTotCBSMonoItem" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -267,10 +267,10 @@ public void setVTotCBSMonoItem(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pDifIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pDifCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="pDifIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pDifCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -406,11 +406,11 @@ public void setVCBSMonoDif(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMono" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="adRemCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="adRemCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -573,11 +573,11 @@ public void setVCBSMono(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="adRemCBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="adRemCBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -740,11 +740,11 @@ public void setVCBSMonoRet(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="adRemCBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="adRemCBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TNFe.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TNFe.java index 1e385c19..6d001b6b 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TNFe.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TNFe.java @@ -53,6 +53,7 @@ * <element name="nNF" type="{http://www.portalfiscal.inf.br/nfe}TNF"/> * <element name="dhEmi" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC"/> * <element name="dhSaiEnt" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC" minOccurs="0"/> + * <element name="dPrevEntrega" type="{http://www.portalfiscal.inf.br/nfe}TData" minOccurs="0"/> * <element name="tpNF"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -609,6 +610,7 @@ * </complexContent> * </complexType> * </element> + * <element name="tpCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TTpCredPresIBSZFM" minOccurs="0"/> * <element name="EXTIPI" minOccurs="0"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -3911,6 +3913,7 @@ public void setSignature(SignatureType value) { * <element name="nNF" type="{http://www.portalfiscal.inf.br/nfe}TNF"/> * <element name="dhEmi" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC"/> * <element name="dhSaiEnt" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC" minOccurs="0"/> + * <element name="dPrevEntrega" type="{http://www.portalfiscal.inf.br/nfe}TData" minOccurs="0"/> * <element name="tpNF"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -4467,6 +4470,7 @@ public void setSignature(SignatureType value) { * </complexContent> * </complexType> * </element> + * <element name="tpCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TTpCredPresIBSZFM" minOccurs="0"/> * <element name="EXTIPI" minOccurs="0"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -10612,6 +10616,7 @@ public void setEmail(String value) { * </complexContent> * </complexType> * </element> + * <element name="tpCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TTpCredPresIBSZFM" minOccurs="0"/> * <element name="EXTIPI" minOccurs="0"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -14764,18 +14769,18 @@ public void setNItem(String value) { public static class Imposto { @XmlElementRefs({ - @XmlElementRef(name = "II", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "vTotTrib", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "PIS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "ISSQN", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "COFINS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "IS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "IBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "ICMS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "IPI", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "vTotTrib", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "PISST", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "ICMS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "II", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "IBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "COFINSST", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "ICMSUFDest", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "PIS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "COFINSST", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false) + @XmlElementRef(name = "IPI", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false) }) protected List> content; @@ -14785,8 +14790,8 @@ public static class Imposto { *

* Você está obtendo esta propriedade "catch-all" pelo seguinte motivo: * O nome do campo "IPI" é usado por duas partes diferentes de um esquema. Consulte: - * linha 4337 de file:/D:/Workspace/Java_NFe/schemas/leiauteNFe_v4.00.xsd - * linha 4305 de file:/D:/Workspace/Java_NFe/schemas/leiauteNFe_v4.00.xsd + * linha 4341 de file:/D:/Workspace/Java_NFe/schemas/leiauteNFe_v4.00.xsd + * linha 4309 de file:/D:/Workspace/Java_NFe/schemas/leiauteNFe_v4.00.xsd *

* Para eliminar esta propriedade, aplique uma personalização de propriedade a uma * das seguintes declarações, a fim de alterar seus nomes: @@ -14807,18 +14812,18 @@ public static class Imposto { * *

* Objects of the following type(s) are allowed in the list - * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.II }{@code >} - * {@link JAXBElement }{@code <}{@link String }{@code >} + * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.PIS }{@code >} * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.ISSQN }{@code >} * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.COFINS }{@code >} * {@link JAXBElement }{@code <}{@link TIS }{@code >} - * {@link JAXBElement }{@code <}{@link TTribNFe }{@code >} - * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.ICMS }{@code >} - * {@link JAXBElement }{@code <}{@link TIpi }{@code >} + * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.PISST }{@code >} - * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.ICMSUFDest }{@code >} - * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.PIS }{@code >} + * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.ICMS }{@code >} + * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.II }{@code >} + * {@link JAXBElement }{@code <}{@link TTribNFe }{@code >} * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.COFINSST }{@code >} + * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.ICMSUFDest }{@code >} + * {@link JAXBElement }{@code <}{@link TIpi }{@code >} * * */ @@ -28528,6 +28533,7 @@ public void setXCampo(String value) { * </complexContent> * </complexType> * </element> + * <element name="tpCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TTpCredPresIBSZFM" minOccurs="0"/> * <element name="EXTIPI" minOccurs="0"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -29283,6 +29289,7 @@ public void setXCampo(String value) { "cnpjFab", "cBenef", "gCred", + "tpCredPresIBSZFM", "extipi", "cfop", "uCom", @@ -29338,6 +29345,8 @@ public static class Prod { protected String cBenef; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected List gCred; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String tpCredPresIBSZFM; @XmlElement(name = "EXTIPI", namespace = "http://www.portalfiscal.inf.br/nfe") protected String extipi; @XmlElement(name = "CFOP", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) @@ -29673,6 +29682,30 @@ public List getGCred() { return this.gCred; } + /** + * Obtém o valor da propriedade tpCredPresIBSZFM. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpCredPresIBSZFM() { + return tpCredPresIBSZFM; + } + + /** + * Define o valor da propriedade tpCredPresIBSZFM. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpCredPresIBSZFM(String value) { + this.tpCredPresIBSZFM = value; + } + /** * Obtém o valor da propriedade extipi. * @@ -34435,6 +34468,7 @@ public void setXLocDespacho(String value) { * <element name="nNF" type="{http://www.portalfiscal.inf.br/nfe}TNF"/> * <element name="dhEmi" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC"/> * <element name="dhSaiEnt" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC" minOccurs="0"/> + * <element name="dPrevEntrega" type="{http://www.portalfiscal.inf.br/nfe}TData" minOccurs="0"/> * <element name="tpNF"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -34693,6 +34727,7 @@ public void setXLocDespacho(String value) { "nnf", "dhEmi", "dhSaiEnt", + "dPrevEntrega", "tpNF", "idDest", "cMunFG", @@ -34733,6 +34768,8 @@ public static class Ide { protected String dhEmi; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected String dhSaiEnt; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String dPrevEntrega; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String tpNF; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) @@ -34968,6 +35005,30 @@ public void setDhSaiEnt(String value) { this.dhSaiEnt = value; } + /** + * Obtém o valor da propriedade dPrevEntrega. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDPrevEntrega() { + return dPrevEntrega; + } + + /** + * Define o valor da propriedade dPrevEntrega. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDPrevEntrega(String value) { + this.dPrevEntrega = value; + } + /** * Obtém o valor da propriedade tpNF. * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TRed.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TRed.java index 807e0749..80cdbcca 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TRed.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TRed.java @@ -19,8 +19,8 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pRedAliq" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="pAliqEfet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pRedAliq" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="pAliqEfet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTransfCred.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTransfCred.java index 07c0e600..8b50cb49 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTransfCred.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTransfCred.java @@ -19,8 +19,8 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribBPe.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribBPe.java index e147a8a9..79f7c993 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribBPe.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribBPe.java @@ -21,7 +21,9 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS" minOccurs="0"/> + * <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> @@ -34,7 +36,9 @@ @XmlType(name = "TTribBPe", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", - "gibscbs" + "indDoacao", + "gibscbs", + "gEstornoCred" }) public class TTribBPe { @@ -42,8 +46,12 @@ public class TTribBPe { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; /** * Obtém o valor da propriedade cst. @@ -93,6 +101,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * @@ -117,4 +149,28 @@ public void setGIBSCBS(TCIBS value) { this.gibscbs = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + } diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribCTe.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribCTe.java index 519f1fd7..ab52e300 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribCTe.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribCTe.java @@ -21,7 +21,9 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS" minOccurs="0"/> + * <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> @@ -34,7 +36,9 @@ @XmlType(name = "TTribCTe", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", - "gibscbs" + "indDoacao", + "gibscbs", + "gEstornoCred" }) public class TTribCTe { @@ -42,8 +46,12 @@ public class TTribCTe { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; /** * Obtém o valor da propriedade cst. @@ -93,6 +101,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * @@ -117,4 +149,28 @@ public void setGIBSCBS(TCIBS value) { this.gibscbs = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + } diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribCompraGov.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribCompraGov.java index cd9e0999..3cf52e59 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribCompraGov.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribCompraGov.java @@ -19,12 +19,12 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pAliqIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pAliqIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pAliqCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="pAliqIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pAliqIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pAliqCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNF3E.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNF3E.java index 52f1bc0b..18f8ea10 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNF3E.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNF3E.java @@ -21,7 +21,9 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS" minOccurs="0"/> + * <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> @@ -34,7 +36,9 @@ @XmlType(name = "TTribNF3e", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", - "gibscbs" + "indDoacao", + "gibscbs", + "gEstornoCred" }) public class TTribNF3E { @@ -42,8 +46,12 @@ public class TTribNF3E { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; /** * Obtém o valor da propriedade cst. @@ -93,6 +101,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * @@ -117,4 +149,28 @@ public void setGIBSCBS(TCIBS value) { this.gibscbs = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + } diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFAg.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFAg.java new file mode 100644 index 00000000..adb50a79 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFAg.java @@ -0,0 +1,176 @@ + +package br.com.swconsultoria.nfe.schema_4.consReciNFe; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + * Grupo de informações da Tributação da NFAg + * + *

Classe Java de TTribNFAg complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TTribNFAg">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/>
+ *         <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/>
+ *         <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/>
+ *         <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS" minOccurs="0"/>
+ *         <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TTribNFAg", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "cst", + "cClassTrib", + "indDoacao", + "gibscbs", + "gEstornoCred" +}) +public class TTribNFAg { + + @XmlElement(name = "CST", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cst; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; + @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") + protected TCIBS gibscbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; + + /** + * Obtém o valor da propriedade cst. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCST() { + return cst; + } + + /** + * Define o valor da propriedade cst. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCST(String value) { + this.cst = value; + } + + /** + * Obtém o valor da propriedade cClassTrib. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCClassTrib() { + return cClassTrib; + } + + /** + * Define o valor da propriedade cClassTrib. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCClassTrib(String value) { + this.cClassTrib = value; + } + + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + + /** + * Obtém o valor da propriedade gibscbs. + * + * @return + * possible object is + * {@link TCIBS } + * + */ + public TCIBS getGIBSCBS() { + return gibscbs; + } + + /** + * Define o valor da propriedade gibscbs. + * + * @param value + * allowed object is + * {@link TCIBS } + * + */ + public void setGIBSCBS(TCIBS value) { + this.gibscbs = value; + } + + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFCe.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFCe.java index 3b99d5ac..388c3287 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFCe.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFCe.java @@ -21,6 +21,7 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <choice minOccurs="0"> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS"/> * <element name="gIBSCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TMonofasia"/> @@ -37,6 +38,7 @@ @XmlType(name = "TTribNFCe", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", + "indDoacao", "gibscbs", "gibscbsMono" }) @@ -46,6 +48,8 @@ public class TTribNFCe { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; @XmlElement(name = "gIBSCBSMono", namespace = "http://www.portalfiscal.inf.br/nfe") @@ -99,6 +103,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFCom.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFCom.java index 6f423005..6ff3728a 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFCom.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFCom.java @@ -21,7 +21,9 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS" minOccurs="0"/> + * <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> @@ -34,7 +36,9 @@ @XmlType(name = "TTribNFCom", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", - "gibscbs" + "indDoacao", + "gibscbs", + "gEstornoCred" }) public class TTribNFCom { @@ -42,8 +46,12 @@ public class TTribNFCom { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; /** * Obtém o valor da propriedade cst. @@ -93,6 +101,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * @@ -117,4 +149,28 @@ public void setGIBSCBS(TCIBS value) { this.gibscbs = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + } diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFGas.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFGas.java new file mode 100644 index 00000000..672381f5 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFGas.java @@ -0,0 +1,206 @@ + +package br.com.swconsultoria.nfe.schema_4.consReciNFe; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + * Grupo de informações da Tributação da NFGas + * + *

Classe Java de TTribNFGas complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TTribNFGas">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/>
+ *         <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/>
+ *         <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/>
+ *         <choice minOccurs="0">
+ *           <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS"/>
+ *           <element name="gIBSCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TMonofasia"/>
+ *         </choice>
+ *         <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TTribNFGas", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "cst", + "cClassTrib", + "indDoacao", + "gibscbs", + "gibscbsMono", + "gEstornoCred" +}) +public class TTribNFGas { + + @XmlElement(name = "CST", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cst; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; + @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") + protected TCIBS gibscbs; + @XmlElement(name = "gIBSCBSMono", namespace = "http://www.portalfiscal.inf.br/nfe") + protected TMonofasia gibscbsMono; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; + + /** + * Obtém o valor da propriedade cst. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCST() { + return cst; + } + + /** + * Define o valor da propriedade cst. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCST(String value) { + this.cst = value; + } + + /** + * Obtém o valor da propriedade cClassTrib. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCClassTrib() { + return cClassTrib; + } + + /** + * Define o valor da propriedade cClassTrib. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCClassTrib(String value) { + this.cClassTrib = value; + } + + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + + /** + * Obtém o valor da propriedade gibscbs. + * + * @return + * possible object is + * {@link TCIBS } + * + */ + public TCIBS getGIBSCBS() { + return gibscbs; + } + + /** + * Define o valor da propriedade gibscbs. + * + * @param value + * allowed object is + * {@link TCIBS } + * + */ + public void setGIBSCBS(TCIBS value) { + this.gibscbs = value; + } + + /** + * Obtém o valor da propriedade gibscbsMono. + * + * @return + * possible object is + * {@link TMonofasia } + * + */ + public TMonofasia getGIBSCBSMono() { + return gibscbsMono; + } + + /** + * Define o valor da propriedade gibscbsMono. + * + * @param value + * allowed object is + * {@link TMonofasia } + * + */ + public void setGIBSCBSMono(TMonofasia value) { + this.gibscbsMono = value; + } + + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFe.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFe.java index 575f3b36..4c52d640 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFe.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribNFe.java @@ -21,12 +21,18 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <choice minOccurs="0"> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS"/> * <element name="gIBSCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TMonofasia"/> * <element name="gTransfCred" type="{http://www.portalfiscal.inf.br/nfe}TTransfCred"/> + * <element name="gAjusteCompet" type="{http://www.portalfiscal.inf.br/nfe}TAjusteCompet"/> + * </choice> + * <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/> + * <choice minOccurs="0"> + * <element name="gCredPresOper" type="{http://www.portalfiscal.inf.br/nfe}TCredPresOper"/> + * <element name="gCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TCredPresIBSZFM"/> * </choice> - * <element name="gCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TCredPresIBSZFM" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> @@ -39,9 +45,13 @@ @XmlType(name = "TTribNFe", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", + "indDoacao", "gibscbs", "gibscbsMono", "gTransfCred", + "gAjusteCompet", + "gEstornoCred", + "gCredPresOper", "gCredPresIBSZFM" }) public class TTribNFe { @@ -50,6 +60,8 @@ public class TTribNFe { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; @XmlElement(name = "gIBSCBSMono", namespace = "http://www.portalfiscal.inf.br/nfe") @@ -57,6 +69,12 @@ public class TTribNFe { @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected TTransfCred gTransfCred; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TAjusteCompet gAjusteCompet; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TCredPresOper gCredPresOper; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected TCredPresIBSZFM gCredPresIBSZFM; /** @@ -107,6 +125,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * @@ -179,6 +221,78 @@ public void setGTransfCred(TTransfCred value) { this.gTransfCred = value; } + /** + * Obtém o valor da propriedade gAjusteCompet. + * + * @return + * possible object is + * {@link TAjusteCompet } + * + */ + public TAjusteCompet getGAjusteCompet() { + return gAjusteCompet; + } + + /** + * Define o valor da propriedade gAjusteCompet. + * + * @param value + * allowed object is + * {@link TAjusteCompet } + * + */ + public void setGAjusteCompet(TAjusteCompet value) { + this.gAjusteCompet = value; + } + + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + + /** + * Obtém o valor da propriedade gCredPresOper. + * + * @return + * possible object is + * {@link TCredPresOper } + * + */ + public TCredPresOper getGCredPresOper() { + return gCredPresOper; + } + + /** + * Define o valor da propriedade gCredPresOper. + * + * @param value + * allowed object is + * {@link TCredPresOper } + * + */ + public void setGCredPresOper(TCredPresOper value) { + this.gCredPresOper = value; + } + /** * Obtém o valor da propriedade gCredPresIBSZFM. * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribRegular.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribRegular.java index e8119d77..99901090 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribRegular.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/consReciNFe/TTribRegular.java @@ -21,12 +21,12 @@ * <sequence> * <element name="CSTReg" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTribReg" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> - * <element name="pAliqEfetRegIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribRegIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pAliqEfetRegIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribRegIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pAliqEfetRegCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribRegCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="pAliqEfetRegIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribRegIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pAliqEfetRegIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribRegIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pAliqEfetRegCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribRegCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/ObjectFactory.java index 3e968127..17e5c0d8 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/ObjectFactory.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/ObjectFactory.java @@ -366,6 +366,14 @@ public TEnderEmi createTEnderEmi() { return new TEnderEmi(); } + /** + * Create an instance of {@link TCredPresOper } + * + */ + public TCredPresOper createTCredPresOper() { + return new TCredPresOper(); + } + /** * Create an instance of {@link TEndereco } * @@ -390,6 +398,14 @@ public TCredPresIBSZFM createTCredPresIBSZFM() { return new TCredPresIBSZFM(); } + /** + * Create an instance of {@link TAjusteCompet } + * + */ + public TAjusteCompet createTAjusteCompet() { + return new TAjusteCompet(); + } + /** * Create an instance of {@link TNfeProc } * @@ -446,6 +462,14 @@ public TVeiculo createTVeiculo() { return new TVeiculo(); } + /** + * Create an instance of {@link TTribNFAg } + * + */ + public TTribNFAg createTTribNFAg() { + return new TTribNFAg(); + } + /** * Create an instance of {@link TCompraGovReduzido } * @@ -478,6 +502,14 @@ public TRed createTRed() { return new TRed(); } + /** + * Create an instance of {@link TTribNFGas } + * + */ + public TTribNFGas createTTribNFGas() { + return new TTribNFGas(); + } + /** * Create an instance of {@link TTribNF3E } * @@ -526,6 +558,14 @@ public TTribRegular createTTribRegular() { return new TTribRegular(); } + /** + * Create an instance of {@link TEstornoCred } + * + */ + public TEstornoCred createTEstornoCred() { + return new TEstornoCred(); + } + /** * Create an instance of {@link TRetConsReciNFe } * @@ -1262,6 +1302,14 @@ public TIBSCBSMonoTot.GMono createTIBSCBSMonoTotGMono() { return new TIBSCBSMonoTot.GMono(); } + /** + * Create an instance of {@link TIBSCBSMonoTot.GEstornoCred } + * + */ + public TIBSCBSMonoTot.GEstornoCred createTIBSCBSMonoTotGEstornoCred() { + return new TIBSCBSMonoTot.GEstornoCred(); + } + /** * Create an instance of {@link TIBSCBSMonoTot.GIBS.GIBSUF } * @@ -1294,6 +1342,14 @@ public TIBSCBSTot.GCBS createTIBSCBSTotGCBS() { return new TIBSCBSTot.GCBS(); } + /** + * Create an instance of {@link TIBSCBSTot.GEstornoCred } + * + */ + public TIBSCBSTot.GEstornoCred createTIBSCBSTotGEstornoCred() { + return new TIBSCBSTot.GEstornoCred(); + } + /** * Create an instance of {@link TIBSCBSTot.GIBS.GIBSUF } * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TAjusteCompet.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TAjusteCompet.java new file mode 100644 index 00000000..29a67974 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TAjusteCompet.java @@ -0,0 +1,119 @@ + +package br.com.swconsultoria.nfe.schema_4.enviNFe; + +import javax.xml.bind.annotation.*; +import javax.xml.datatype.XMLGregorianCalendar; + + +/** + * Tipo Ajuste de Competência + * + *

Classe Java de TAjusteCompet complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TAjusteCompet">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="competApur" type="{http://www.portalfiscal.inf.br/nfe}TCompetApur"/>
+ *         <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+ *         <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TAjusteCompet", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "competApur", + "vibs", + "vcbs" +}) +public class TAjusteCompet { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + @XmlSchemaType(name = "gYearMonth") + protected XMLGregorianCalendar competApur; + @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibs; + @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbs; + + /** + * Obtém o valor da propriedade competApur. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getCompetApur() { + return competApur; + } + + /** + * Define o valor da propriedade competApur. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setCompetApur(XMLGregorianCalendar value) { + this.competApur = value; + } + + /** + * Obtém o valor da propriedade vibs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBS() { + return vibs; + } + + /** + * Define o valor da propriedade vibs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBS(String value) { + this.vibs = value; + } + + /** + * Obtém o valor da propriedade vcbs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBS() { + return vcbs; + } + + /** + * Define o valor da propriedade vcbs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBS(String value) { + this.vcbs = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCIBS.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCIBS.java index ca18d8c9..db0b2c85 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCIBS.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCIBS.java @@ -19,18 +19,18 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vBC" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vBC" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * <sequence> * <element name="gIBSUF"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -41,36 +41,34 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * <element name="gCBS"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> * <element name="gTribRegular" type="{http://www.portalfiscal.inf.br/nfe}TTribRegular" minOccurs="0"/> - * <element name="gIBSCredPres" type="{http://www.portalfiscal.inf.br/nfe}TCredPres" minOccurs="0"/> - * <element name="gCBSCredPres" type="{http://www.portalfiscal.inf.br/nfe}TCredPres" minOccurs="0"/> * <element name="gTribCompraGov" type="{http://www.portalfiscal.inf.br/nfe}TTribCompraGov" minOccurs="0"/> * </sequence> * </restriction> @@ -88,8 +86,6 @@ "vibs", "gcbs", "gTribRegular", - "gibsCredPres", - "gcbsCredPres", "gTribCompraGov" }) public class TCIBS { @@ -106,10 +102,6 @@ public class TCIBS { protected TCIBS.GCBS gcbs; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected TTribRegular gTribRegular; - @XmlElement(name = "gIBSCredPres", namespace = "http://www.portalfiscal.inf.br/nfe") - protected TCredPres gibsCredPres; - @XmlElement(name = "gCBSCredPres", namespace = "http://www.portalfiscal.inf.br/nfe") - protected TCredPres gcbsCredPres; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected TTribCompraGov gTribCompraGov; @@ -257,54 +249,6 @@ public void setGTribRegular(TTribRegular value) { this.gTribRegular = value; } - /** - * Obtém o valor da propriedade gibsCredPres. - * - * @return - * possible object is - * {@link TCredPres } - * - */ - public TCredPres getGIBSCredPres() { - return gibsCredPres; - } - - /** - * Define o valor da propriedade gibsCredPres. - * - * @param value - * allowed object is - * {@link TCredPres } - * - */ - public void setGIBSCredPres(TCredPres value) { - this.gibsCredPres = value; - } - - /** - * Obtém o valor da propriedade gcbsCredPres. - * - * @return - * possible object is - * {@link TCredPres } - * - */ - public TCredPres getGCBSCredPres() { - return gcbsCredPres; - } - - /** - * Define o valor da propriedade gcbsCredPres. - * - * @param value - * allowed object is - * {@link TCredPres } - * - */ - public void setGCBSCredPres(TCredPres value) { - this.gcbsCredPres = value; - } - /** * Obtém o valor da propriedade gTribCompraGov. * @@ -340,11 +284,11 @@ public void setGTribCompraGov(TTribCompraGov value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -507,11 +451,11 @@ public void setVCBS(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -674,11 +618,11 @@ public void setVIBSMun(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="gDif" type="{http://www.portalfiscal.inf.br/nfe}TDif" minOccurs="0"/> * <element name="gDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDevTrib" minOccurs="0"/> * <element name="gRed" type="{http://www.portalfiscal.inf.br/nfe}TRed" minOccurs="0"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCompraGov.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCompraGov.java index 82e58fa4..163be1cf 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCompraGov.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCompraGov.java @@ -20,7 +20,7 @@ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="tpEnteGov" type="{http://www.portalfiscal.inf.br/nfe}TEnteGov"/> - * <element name="pRedutor" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pRedutor" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <element name="tpOperGov" type="{http://www.portalfiscal.inf.br/nfe}TOperCompraGov"/> * </sequence> * </restriction> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCompraGovReduzido.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCompraGovReduzido.java index 4f82be56..d9b3726a 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCompraGovReduzido.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCompraGovReduzido.java @@ -20,7 +20,7 @@ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="tpEnteGov" type="{http://www.portalfiscal.inf.br/nfe}TEnteGov"/> - * <element name="pRedutor" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pRedutor" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPres.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPres.java index a528beda..d1095a07 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPres.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPres.java @@ -19,11 +19,10 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="cCredPres" type="{http://www.portalfiscal.inf.br/nfe}TcCredPres"/> - * <element name="pCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * <choice> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </choice> * </sequence> * </restriction> @@ -35,15 +34,12 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "TCredPres", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { - "cCredPres", "pCredPres", "vCredPres", "vCredPresCondSus" }) public class TCredPres { - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) - protected String cCredPres; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String pCredPres; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") @@ -51,30 +47,6 @@ public class TCredPres { @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected String vCredPresCondSus; - /** - * Obtém o valor da propriedade cCredPres. - * - * @return - * possible object is - * {@link String } - * - */ - public String getCCredPres() { - return cCredPres; - } - - /** - * Define o valor da propriedade cCredPres. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setCCredPres(String value) { - this.cCredPres = value; - } - /** * Obtém o valor da propriedade pCredPres. * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPresIBSZFM.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPresIBSZFM.java index 7264e967..9d6c8829 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPresIBSZFM.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPresIBSZFM.java @@ -1,10 +1,8 @@ package br.com.swconsultoria.nfe.schema_4.enviNFe; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.*; +import javax.xml.datatype.XMLGregorianCalendar; /** @@ -19,8 +17,9 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> + * <element name="competApur" type="{http://www.portalfiscal.inf.br/nfe}TCompetApur"/> * <element name="tpCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TTpCredPresIBSZFM"/> - * <element name="vCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TDec1302" minOccurs="0"/> + * <element name="vCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -31,16 +30,44 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "TCredPresIBSZFM", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "competApur", "tpCredPresIBSZFM", "vCredPresIBSZFM" }) public class TCredPresIBSZFM { + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + @XmlSchemaType(name = "gYearMonth") + protected XMLGregorianCalendar competApur; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String tpCredPresIBSZFM; - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String vCredPresIBSZFM; + /** + * Obtém o valor da propriedade competApur. + * + * @return + * possible object is + * {@link XMLGregorianCalendar } + * + */ + public XMLGregorianCalendar getCompetApur() { + return competApur; + } + + /** + * Define o valor da propriedade competApur. + * + * @param value + * allowed object is + * {@link XMLGregorianCalendar } + * + */ + public void setCompetApur(XMLGregorianCalendar value) { + this.competApur = value; + } + /** * Obtém o valor da propriedade tpCredPresIBSZFM. * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPresOper.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPresOper.java new file mode 100644 index 00000000..5f9217da --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TCredPresOper.java @@ -0,0 +1,148 @@ + +package br.com.swconsultoria.nfe.schema_4.enviNFe; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + * Tipo Crédito Presumido da Operação + * + *

Classe Java de TCredPresOper complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TCredPresOper">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="vBCCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+ *         <element name="cCredPres" type="{http://www.portalfiscal.inf.br/nfe}TcCredPres"/>
+ *         <element name="gIBSCredPres" type="{http://www.portalfiscal.inf.br/nfe}TCredPres" minOccurs="0"/>
+ *         <element name="gCBSCredPres" type="{http://www.portalfiscal.inf.br/nfe}TCredPres" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TCredPresOper", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "vbcCredPres", + "cCredPres", + "gibsCredPres", + "gcbsCredPres" +}) +public class TCredPresOper { + + @XmlElement(name = "vBCCredPres", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vbcCredPres; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cCredPres; + @XmlElement(name = "gIBSCredPres", namespace = "http://www.portalfiscal.inf.br/nfe") + protected TCredPres gibsCredPres; + @XmlElement(name = "gCBSCredPres", namespace = "http://www.portalfiscal.inf.br/nfe") + protected TCredPres gcbsCredPres; + + /** + * Obtém o valor da propriedade vbcCredPres. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVBCCredPres() { + return vbcCredPres; + } + + /** + * Define o valor da propriedade vbcCredPres. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVBCCredPres(String value) { + this.vbcCredPres = value; + } + + /** + * Obtém o valor da propriedade cCredPres. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCCredPres() { + return cCredPres; + } + + /** + * Define o valor da propriedade cCredPres. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCCredPres(String value) { + this.cCredPres = value; + } + + /** + * Obtém o valor da propriedade gibsCredPres. + * + * @return + * possible object is + * {@link TCredPres } + * + */ + public TCredPres getGIBSCredPres() { + return gibsCredPres; + } + + /** + * Define o valor da propriedade gibsCredPres. + * + * @param value + * allowed object is + * {@link TCredPres } + * + */ + public void setGIBSCredPres(TCredPres value) { + this.gibsCredPres = value; + } + + /** + * Obtém o valor da propriedade gcbsCredPres. + * + * @return + * possible object is + * {@link TCredPres } + * + */ + public TCredPres getGCBSCredPres() { + return gcbsCredPres; + } + + /** + * Define o valor da propriedade gcbsCredPres. + * + * @param value + * allowed object is + * {@link TCredPres } + * + */ + public void setGCBSCredPres(TCredPres value) { + this.gcbsCredPres = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TDevTrib.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TDevTrib.java index 919e614f..f89574a4 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TDevTrib.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TDevTrib.java @@ -19,7 +19,7 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TDif.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TDif.java index 98dd87b6..49820204 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TDif.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TDif.java @@ -19,8 +19,8 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pDif" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="pDif" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TEstornoCred.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TEstornoCred.java new file mode 100644 index 00000000..70f6780f --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TEstornoCred.java @@ -0,0 +1,92 @@ + +package br.com.swconsultoria.nfe.schema_4.enviNFe; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + * Tipo Estorno de Crédito + * + *

Classe Java de TEstornoCred complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TEstornoCred">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="vIBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+ *         <element name="vCBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TEstornoCred", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "vibsEstCred", + "vcbsEstCred" +}) +public class TEstornoCred { + + @XmlElement(name = "vIBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibsEstCred; + @XmlElement(name = "vCBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbsEstCred; + + /** + * Obtém o valor da propriedade vibsEstCred. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBSEstCred() { + return vibsEstCred; + } + + /** + * Define o valor da propriedade vibsEstCred. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBSEstCred(String value) { + this.vibsEstCred = value; + } + + /** + * Obtém o valor da propriedade vcbsEstCred. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBSEstCred() { + return vcbsEstCred; + } + + /** + * Define o valor da propriedade vcbsEstCred. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBSEstCred(String value) { + this.vcbsEstCred = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIBSCBSMonoTot.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIBSCBSMonoTot.java index dc24eb7d..e07faa44 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIBSCBSMonoTot.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIBSCBSMonoTot.java @@ -19,7 +19,7 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vBCIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vBCIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * <element name="gIBS" minOccurs="0"> * <complexType> * <complexContent> @@ -30,9 +30,9 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -43,17 +43,17 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -64,11 +64,11 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -79,12 +79,24 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="gEstornoCred" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="vIBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -103,7 +115,8 @@ "vbcibscbs", "gibs", "gcbs", - "gMono" + "gMono", + "gEstornoCred" }) public class TIBSCBSMonoTot { @@ -115,6 +128,8 @@ public class TIBSCBSMonoTot { protected TIBSCBSMonoTot.GCBS gcbs; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected TIBSCBSMonoTot.GMono gMono; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TIBSCBSMonoTot.GEstornoCred gEstornoCred; /** * Obtém o valor da propriedade vbcibscbs. @@ -212,6 +227,30 @@ public void setGMono(TIBSCBSMonoTot.GMono value) { this.gMono = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TIBSCBSMonoTot.GEstornoCred } + * + */ + public TIBSCBSMonoTot.GEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TIBSCBSMonoTot.GEstornoCred } + * + */ + public void setGEstornoCred(TIBSCBSMonoTot.GEstornoCred value) { + this.gEstornoCred = value; + } + /** *

Classe Java de anonymous complex type. @@ -223,11 +262,11 @@ public void setGMono(TIBSCBSMonoTot.GMono value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -380,6 +419,89 @@ public void setVCredPresCondSus(String value) { } + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+     *         <element name="vCBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+     *       </sequence>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibsEstCred", + "vcbsEstCred" + }) + public static class GEstornoCred { + + @XmlElement(name = "vIBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibsEstCred; + @XmlElement(name = "vCBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbsEstCred; + + /** + * Obtém o valor da propriedade vibsEstCred. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBSEstCred() { + return vibsEstCred; + } + + /** + * Define o valor da propriedade vibsEstCred. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBSEstCred(String value) { + this.vibsEstCred = value; + } + + /** + * Obtém o valor da propriedade vcbsEstCred. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBSEstCred() { + return vcbsEstCred; + } + + /** + * Define o valor da propriedade vcbsEstCred. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBSEstCred(String value) { + this.vcbsEstCred = value; + } + + } + + /** *

Classe Java de anonymous complex type. * @@ -395,9 +517,9 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -408,17 +530,17 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -579,9 +701,9 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -690,9 +812,9 @@ public void setVIBSMun(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -803,12 +925,12 @@ public void setVIBSUF(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIBSCBSTot.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIBSCBSTot.java index c8b2f883..9b79c32f 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIBSCBSTot.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIBSCBSTot.java @@ -19,7 +19,7 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vBCIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vBCIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * <element name="gIBS"> * <complexType> * <complexContent> @@ -30,9 +30,9 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -43,17 +43,15 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -64,11 +62,21 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * </sequence> + * </restriction> + * </complexContent> + * </complexType> + * </element> + * <element name="gEstornoCred" minOccurs="0"> + * <complexType> + * <complexContent> + * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> + * <sequence> + * <element name="vIBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -86,7 +94,8 @@ @XmlType(name = "TIBSCBSTot", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "vbcibscbs", "gibs", - "gcbs" + "gcbs", + "gEstornoCred" }) public class TIBSCBSTot { @@ -96,6 +105,8 @@ public class TIBSCBSTot { protected TIBSCBSTot.GIBS gibs; @XmlElement(name = "gCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected TIBSCBSTot.GCBS gcbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TIBSCBSTot.GEstornoCred gEstornoCred; /** * Obtém o valor da propriedade vbcibscbs. @@ -169,6 +180,30 @@ public void setGCBS(TIBSCBSTot.GCBS value) { this.gcbs = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TIBSCBSTot.GEstornoCred } + * + */ + public TIBSCBSTot.GEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TIBSCBSTot.GEstornoCred } + * + */ + public void setGEstornoCred(TIBSCBSTot.GEstornoCred value) { + this.gEstornoCred = value; + } + /** *

Classe Java de anonymous complex type. @@ -180,11 +215,9 @@ public void setGCBS(TIBSCBSTot.GCBS value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -197,9 +230,7 @@ public void setGCBS(TIBSCBSTot.GCBS value) { @XmlType(name = "", propOrder = { "vDif", "vDevTrib", - "vcbs", - "vCredPres", - "vCredPresCondSus" + "vcbs" }) public static class GCBS { @@ -209,10 +240,6 @@ public static class GCBS { protected String vDevTrib; @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String vcbs; - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) - protected String vCredPres; - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) - protected String vCredPresCondSus; /** * Obtém o valor da propriedade vDif. @@ -286,52 +313,87 @@ public void setVCBS(String value) { this.vcbs = value; } + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+     *         <element name="vCBSEstCred" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/>
+     *       </sequence>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibsEstCred", + "vcbsEstCred" + }) + public static class GEstornoCred { + + @XmlElement(name = "vIBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibsEstCred; + @XmlElement(name = "vCBSEstCred", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbsEstCred; + /** - * Obtém o valor da propriedade vCredPres. + * Obtém o valor da propriedade vibsEstCred. * * @return * possible object is * {@link String } * */ - public String getVCredPres() { - return vCredPres; + public String getVIBSEstCred() { + return vibsEstCred; } /** - * Define o valor da propriedade vCredPres. + * Define o valor da propriedade vibsEstCred. * * @param value * allowed object is * {@link String } * */ - public void setVCredPres(String value) { - this.vCredPres = value; + public void setVIBSEstCred(String value) { + this.vibsEstCred = value; } /** - * Obtém o valor da propriedade vCredPresCondSus. + * Obtém o valor da propriedade vcbsEstCred. * * @return * possible object is * {@link String } * */ - public String getVCredPresCondSus() { - return vCredPresCondSus; + public String getVCBSEstCred() { + return vcbsEstCred; } /** - * Define o valor da propriedade vCredPresCondSus. + * Define o valor da propriedade vcbsEstCred. * * @param value * allowed object is * {@link String } * */ - public void setVCredPresCondSus(String value) { - this.vCredPresCondSus = value; + public void setVCBSEstCred(String value) { + this.vcbsEstCred = value; } } @@ -352,9 +414,9 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -365,17 +427,15 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCredPresCondSus" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -388,9 +448,7 @@ public void setVCredPresCondSus(String value) { @XmlType(name = "", propOrder = { "gibsuf", "gibsMun", - "vibs", - "vCredPres", - "vCredPresCondSus" + "vibs" }) public static class GIBS { @@ -400,10 +458,6 @@ public static class GIBS { protected TIBSCBSTot.GIBS.GIBSMun gibsMun; @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String vibs; - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) - protected String vCredPres; - @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) - protected String vCredPresCondSus; /** * Obtém o valor da propriedade gibsuf. @@ -477,54 +531,6 @@ public void setVIBS(String value) { this.vibs = value; } - /** - * Obtém o valor da propriedade vCredPres. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVCredPres() { - return vCredPres; - } - - /** - * Define o valor da propriedade vCredPres. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVCredPres(String value) { - this.vCredPres = value; - } - - /** - * Obtém o valor da propriedade vCredPresCondSus. - * - * @return - * possible object is - * {@link String } - * - */ - public String getVCredPresCondSus() { - return vCredPresCondSus; - } - - /** - * Define o valor da propriedade vCredPresCondSus. - * - * @param value - * allowed object is - * {@link String } - * - */ - public void setVCredPresCondSus(String value) { - this.vCredPresCondSus = value; - } - /** *

Classe Java de anonymous complex type. @@ -536,9 +542,9 @@ public void setVCredPresCondSus(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -647,9 +653,9 @@ public void setVIBSMun(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vDevTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIS.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIS.java index 33950060..ff455ce7 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIS.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TIS.java @@ -22,9 +22,9 @@ * <element name="CSTIS" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTribIS" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> * <sequence minOccurs="0"> - * <element name="vBCIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pIS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="pISEspec" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04" minOccurs="0"/> + * <element name="vBCIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pIS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="pISEspec" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC" minOccurs="0"/> * <sequence minOccurs="0"> * <element name="uTrib"> * <simpleType> @@ -34,9 +34,9 @@ * </restriction> * </simpleType> * </element> - * <element name="qTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> + * <element name="qTrib" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104OpRTC"/> * </sequence> - * <element name="vIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </sequence> * </restriction> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TISTot.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TISTot.java index d60d757d..e8fa2061 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TISTot.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TISTot.java @@ -19,7 +19,7 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TMonofasia.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TMonofasia.java index 3ed4cc39..685a417e 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TMonofasia.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TMonofasia.java @@ -24,11 +24,11 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMono" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="adRemCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="adRemCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -39,11 +39,11 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="adRemCBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="adRemCBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -54,11 +54,11 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="adRemCBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="adRemCBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -69,17 +69,17 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pDifIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pDifCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="pDifIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pDifCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> * </complexType> * </element> - * <element name="vTotIBSMonoItem" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vTotCBSMonoItem" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vTotIBSMonoItem" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vTotCBSMonoItem" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -267,10 +267,10 @@ public void setVTotCBSMonoItem(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pDifIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pDifCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="pDifIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pDifCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoDif" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -406,11 +406,11 @@ public void setVCBSMonoDif(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMono" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="adRemCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="adRemCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -573,11 +573,11 @@ public void setVCBSMono(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="adRemCBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="adRemCBSRet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoRet" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> @@ -740,11 +740,11 @@ public void setVCBSMonoRet(String value) { * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="qBCMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104Op"/> - * <element name="adRemIBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="adRemCBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="qBCMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1104RTC"/> + * <element name="adRemIBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vIBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="adRemCBSReten" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vCBSMonoReten" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TNFe.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TNFe.java index e72b39cb..77e185c3 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TNFe.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TNFe.java @@ -53,6 +53,7 @@ * <element name="nNF" type="{http://www.portalfiscal.inf.br/nfe}TNF"/> * <element name="dhEmi" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC"/> * <element name="dhSaiEnt" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC" minOccurs="0"/> + * <element name="dPrevEntrega" type="{http://www.portalfiscal.inf.br/nfe}TData" minOccurs="0"/> * <element name="tpNF"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -609,6 +610,7 @@ * </complexContent> * </complexType> * </element> + * <element name="tpCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TTpCredPresIBSZFM" minOccurs="0"/> * <element name="EXTIPI" minOccurs="0"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -3911,6 +3913,7 @@ public void setSignature(SignatureType value) { * <element name="nNF" type="{http://www.portalfiscal.inf.br/nfe}TNF"/> * <element name="dhEmi" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC"/> * <element name="dhSaiEnt" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC" minOccurs="0"/> + * <element name="dPrevEntrega" type="{http://www.portalfiscal.inf.br/nfe}TData" minOccurs="0"/> * <element name="tpNF"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -4467,6 +4470,7 @@ public void setSignature(SignatureType value) { * </complexContent> * </complexType> * </element> + * <element name="tpCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TTpCredPresIBSZFM" minOccurs="0"/> * <element name="EXTIPI" minOccurs="0"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -10612,6 +10616,7 @@ public void setEmail(String value) { * </complexContent> * </complexType> * </element> + * <element name="tpCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TTpCredPresIBSZFM" minOccurs="0"/> * <element name="EXTIPI" minOccurs="0"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -14764,18 +14769,18 @@ public void setNItem(String value) { public static class Imposto { @XmlElementRefs({ - @XmlElementRef(name = "PISST", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "IPI", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "II", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "vTotTrib", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "IS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "COFINSST", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "ISSQN", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "ICMS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "IPI", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "IBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), + @XmlElementRef(name = "COFINS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "ICMSUFDest", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "ICMS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), @XmlElementRef(name = "PIS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "COFINSST", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "vTotTrib", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false), - @XmlElementRef(name = "COFINS", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false) + @XmlElementRef(name = "PISST", namespace = "http://www.portalfiscal.inf.br/nfe", type = JAXBElement.class, required = false) }) protected List> content; @@ -14785,8 +14790,8 @@ public static class Imposto { *

* Você está obtendo esta propriedade "catch-all" pelo seguinte motivo: * O nome do campo "IPI" é usado por duas partes diferentes de um esquema. Consulte: - * linha 4337 de file:/D:/Workspace/Java_NFe/schemas/leiauteNFe_v4.00.xsd - * linha 4305 de file:/D:/Workspace/Java_NFe/schemas/leiauteNFe_v4.00.xsd + * linha 4341 de file:/D:/Workspace/Java_NFe/schemas/leiauteNFe_v4.00.xsd + * linha 4309 de file:/D:/Workspace/Java_NFe/schemas/leiauteNFe_v4.00.xsd *

* Para eliminar esta propriedade, aplique uma personalização de propriedade a uma * das seguintes declarações, a fim de alterar seus nomes: @@ -14807,18 +14812,18 @@ public static class Imposto { * *

* Objects of the following type(s) are allowed in the list - * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.PISST }{@code >} - * {@link JAXBElement }{@code <}{@link TIpi }{@code >} * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.II }{@code >} + * {@link JAXBElement }{@code <}{@link String }{@code >} * {@link JAXBElement }{@code <}{@link TIS }{@code >} + * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.COFINSST }{@code >} * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.ISSQN }{@code >} + * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.ICMS }{@code >} + * {@link JAXBElement }{@code <}{@link TIpi }{@code >} * {@link JAXBElement }{@code <}{@link TTribNFe }{@code >} + * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.COFINS }{@code >} * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.ICMSUFDest }{@code >} - * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.ICMS }{@code >} * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.PIS }{@code >} - * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.COFINSST }{@code >} - * {@link JAXBElement }{@code <}{@link String }{@code >} - * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.COFINS }{@code >} + * {@link JAXBElement }{@code <}{@link TNFe.InfNFe.Det.Imposto.PISST }{@code >} * * */ @@ -28528,6 +28533,7 @@ public void setXCampo(String value) { * </complexContent> * </complexType> * </element> + * <element name="tpCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TTpCredPresIBSZFM" minOccurs="0"/> * <element name="EXTIPI" minOccurs="0"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -29283,6 +29289,7 @@ public void setXCampo(String value) { "cnpjFab", "cBenef", "gCred", + "tpCredPresIBSZFM", "extipi", "cfop", "uCom", @@ -29338,6 +29345,8 @@ public static class Prod { protected String cBenef; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected List gCred; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String tpCredPresIBSZFM; @XmlElement(name = "EXTIPI", namespace = "http://www.portalfiscal.inf.br/nfe") protected String extipi; @XmlElement(name = "CFOP", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) @@ -29673,6 +29682,30 @@ public List getGCred() { return this.gCred; } + /** + * Obtém o valor da propriedade tpCredPresIBSZFM. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpCredPresIBSZFM() { + return tpCredPresIBSZFM; + } + + /** + * Define o valor da propriedade tpCredPresIBSZFM. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpCredPresIBSZFM(String value) { + this.tpCredPresIBSZFM = value; + } + /** * Obtém o valor da propriedade extipi. * @@ -34435,6 +34468,7 @@ public void setXLocDespacho(String value) { * <element name="nNF" type="{http://www.portalfiscal.inf.br/nfe}TNF"/> * <element name="dhEmi" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC"/> * <element name="dhSaiEnt" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC" minOccurs="0"/> + * <element name="dPrevEntrega" type="{http://www.portalfiscal.inf.br/nfe}TData" minOccurs="0"/> * <element name="tpNF"> * <simpleType> * <restriction base="{http://www.w3.org/2001/XMLSchema}string"> @@ -34693,6 +34727,7 @@ public void setXLocDespacho(String value) { "nnf", "dhEmi", "dhSaiEnt", + "dPrevEntrega", "tpNF", "idDest", "cMunFG", @@ -34733,6 +34768,8 @@ public static class Ide { protected String dhEmi; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected String dhSaiEnt; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String dPrevEntrega; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String tpNF; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) @@ -34968,6 +35005,30 @@ public void setDhSaiEnt(String value) { this.dhSaiEnt = value; } + /** + * Obtém o valor da propriedade dPrevEntrega. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDPrevEntrega() { + return dPrevEntrega; + } + + /** + * Define o valor da propriedade dPrevEntrega. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDPrevEntrega(String value) { + this.dPrevEntrega = value; + } + /** * Obtém o valor da propriedade tpNF. * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TRed.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TRed.java index d6add073..5dff3657 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TRed.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TRed.java @@ -19,8 +19,8 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pRedAliq" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="pAliqEfet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> + * <element name="pRedAliq" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="pAliqEfet" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTransfCred.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTransfCred.java index 27c0117f..49a20b9e 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTransfCred.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTransfCred.java @@ -19,8 +19,8 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribBPe.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribBPe.java index 2b96edae..6342722a 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribBPe.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribBPe.java @@ -21,7 +21,9 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS" minOccurs="0"/> + * <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> @@ -34,7 +36,9 @@ @XmlType(name = "TTribBPe", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", - "gibscbs" + "indDoacao", + "gibscbs", + "gEstornoCred" }) public class TTribBPe { @@ -42,8 +46,12 @@ public class TTribBPe { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; /** * Obtém o valor da propriedade cst. @@ -93,6 +101,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * @@ -117,4 +149,28 @@ public void setGIBSCBS(TCIBS value) { this.gibscbs = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + } diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribCTe.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribCTe.java index 699cca75..bba8efa1 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribCTe.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribCTe.java @@ -21,7 +21,9 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS" minOccurs="0"/> + * <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> @@ -34,7 +36,9 @@ @XmlType(name = "TTribCTe", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", - "gibscbs" + "indDoacao", + "gibscbs", + "gEstornoCred" }) public class TTribCTe { @@ -42,8 +46,12 @@ public class TTribCTe { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; /** * Obtém o valor da propriedade cst. @@ -93,6 +101,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * @@ -117,4 +149,28 @@ public void setGIBSCBS(TCIBS value) { this.gibscbs = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + } diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribCompraGov.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribCompraGov.java index 019d2f00..a6156671 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribCompraGov.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribCompraGov.java @@ -19,12 +19,12 @@ * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> - * <element name="pAliqIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pAliqIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pAliqCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="pAliqIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pAliqIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pAliqCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNF3E.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNF3E.java index 4afba9fa..01a1f897 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNF3E.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNF3E.java @@ -21,7 +21,9 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS" minOccurs="0"/> + * <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> @@ -34,7 +36,9 @@ @XmlType(name = "TTribNF3e", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", - "gibscbs" + "indDoacao", + "gibscbs", + "gEstornoCred" }) public class TTribNF3E { @@ -42,8 +46,12 @@ public class TTribNF3E { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; /** * Obtém o valor da propriedade cst. @@ -93,6 +101,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * @@ -117,4 +149,28 @@ public void setGIBSCBS(TCIBS value) { this.gibscbs = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + } diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFAg.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFAg.java new file mode 100644 index 00000000..678ef8b7 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFAg.java @@ -0,0 +1,176 @@ + +package br.com.swconsultoria.nfe.schema_4.enviNFe; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + * Grupo de informações da Tributação da NFAg + * + *

Classe Java de TTribNFAg complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TTribNFAg">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/>
+ *         <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/>
+ *         <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/>
+ *         <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS" minOccurs="0"/>
+ *         <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TTribNFAg", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "cst", + "cClassTrib", + "indDoacao", + "gibscbs", + "gEstornoCred" +}) +public class TTribNFAg { + + @XmlElement(name = "CST", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cst; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; + @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") + protected TCIBS gibscbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; + + /** + * Obtém o valor da propriedade cst. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCST() { + return cst; + } + + /** + * Define o valor da propriedade cst. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCST(String value) { + this.cst = value; + } + + /** + * Obtém o valor da propriedade cClassTrib. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCClassTrib() { + return cClassTrib; + } + + /** + * Define o valor da propriedade cClassTrib. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCClassTrib(String value) { + this.cClassTrib = value; + } + + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + + /** + * Obtém o valor da propriedade gibscbs. + * + * @return + * possible object is + * {@link TCIBS } + * + */ + public TCIBS getGIBSCBS() { + return gibscbs; + } + + /** + * Define o valor da propriedade gibscbs. + * + * @param value + * allowed object is + * {@link TCIBS } + * + */ + public void setGIBSCBS(TCIBS value) { + this.gibscbs = value; + } + + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFCe.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFCe.java index b25e3ea6..652ef828 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFCe.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFCe.java @@ -21,6 +21,7 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <choice minOccurs="0"> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS"/> * <element name="gIBSCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TMonofasia"/> @@ -37,6 +38,7 @@ @XmlType(name = "TTribNFCe", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", + "indDoacao", "gibscbs", "gibscbsMono" }) @@ -46,6 +48,8 @@ public class TTribNFCe { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; @XmlElement(name = "gIBSCBSMono", namespace = "http://www.portalfiscal.inf.br/nfe") @@ -99,6 +103,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFCom.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFCom.java index f686154a..b771cb9f 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFCom.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFCom.java @@ -21,7 +21,9 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS" minOccurs="0"/> + * <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> @@ -34,7 +36,9 @@ @XmlType(name = "TTribNFCom", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", - "gibscbs" + "indDoacao", + "gibscbs", + "gEstornoCred" }) public class TTribNFCom { @@ -42,8 +46,12 @@ public class TTribNFCom { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; /** * Obtém o valor da propriedade cst. @@ -93,6 +101,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * @@ -117,4 +149,28 @@ public void setGIBSCBS(TCIBS value) { this.gibscbs = value; } + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + } diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFGas.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFGas.java new file mode 100644 index 00000000..225f7494 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFGas.java @@ -0,0 +1,206 @@ + +package br.com.swconsultoria.nfe.schema_4.enviNFe; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + * Grupo de informações da Tributação da NFGas + * + *

Classe Java de TTribNFGas complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TTribNFGas">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/>
+ *         <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/>
+ *         <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/>
+ *         <choice minOccurs="0">
+ *           <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS"/>
+ *           <element name="gIBSCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TMonofasia"/>
+ *         </choice>
+ *         <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TTribNFGas", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "cst", + "cClassTrib", + "indDoacao", + "gibscbs", + "gibscbsMono", + "gEstornoCred" +}) +public class TTribNFGas { + + @XmlElement(name = "CST", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cst; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; + @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") + protected TCIBS gibscbs; + @XmlElement(name = "gIBSCBSMono", namespace = "http://www.portalfiscal.inf.br/nfe") + protected TMonofasia gibscbsMono; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; + + /** + * Obtém o valor da propriedade cst. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCST() { + return cst; + } + + /** + * Define o valor da propriedade cst. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCST(String value) { + this.cst = value; + } + + /** + * Obtém o valor da propriedade cClassTrib. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCClassTrib() { + return cClassTrib; + } + + /** + * Define o valor da propriedade cClassTrib. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCClassTrib(String value) { + this.cClassTrib = value; + } + + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + + /** + * Obtém o valor da propriedade gibscbs. + * + * @return + * possible object is + * {@link TCIBS } + * + */ + public TCIBS getGIBSCBS() { + return gibscbs; + } + + /** + * Define o valor da propriedade gibscbs. + * + * @param value + * allowed object is + * {@link TCIBS } + * + */ + public void setGIBSCBS(TCIBS value) { + this.gibscbs = value; + } + + /** + * Obtém o valor da propriedade gibscbsMono. + * + * @return + * possible object is + * {@link TMonofasia } + * + */ + public TMonofasia getGIBSCBSMono() { + return gibscbsMono; + } + + /** + * Define o valor da propriedade gibscbsMono. + * + * @param value + * allowed object is + * {@link TMonofasia } + * + */ + public void setGIBSCBSMono(TMonofasia value) { + this.gibscbsMono = value; + } + + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFe.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFe.java index c986257e..240b558e 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFe.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribNFe.java @@ -21,12 +21,18 @@ * <sequence> * <element name="CST" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTrib" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> + * <element name="indDoacao" type="{http://www.portalfiscal.inf.br/nfe}TIndDoacao" minOccurs="0"/> * <choice minOccurs="0"> * <element name="gIBSCBS" type="{http://www.portalfiscal.inf.br/nfe}TCIBS"/> * <element name="gIBSCBSMono" type="{http://www.portalfiscal.inf.br/nfe}TMonofasia"/> * <element name="gTransfCred" type="{http://www.portalfiscal.inf.br/nfe}TTransfCred"/> + * <element name="gAjusteCompet" type="{http://www.portalfiscal.inf.br/nfe}TAjusteCompet"/> + * </choice> + * <element name="gEstornoCred" type="{http://www.portalfiscal.inf.br/nfe}TEstornoCred" minOccurs="0"/> + * <choice minOccurs="0"> + * <element name="gCredPresOper" type="{http://www.portalfiscal.inf.br/nfe}TCredPresOper"/> + * <element name="gCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TCredPresIBSZFM"/> * </choice> - * <element name="gCredPresIBSZFM" type="{http://www.portalfiscal.inf.br/nfe}TCredPresIBSZFM" minOccurs="0"/> * </sequence> * </restriction> * </complexContent> @@ -39,9 +45,13 @@ @XmlType(name = "TTribNFe", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { "cst", "cClassTrib", + "indDoacao", "gibscbs", "gibscbsMono", "gTransfCred", + "gAjusteCompet", + "gEstornoCred", + "gCredPresOper", "gCredPresIBSZFM" }) public class TTribNFe { @@ -50,6 +60,8 @@ public class TTribNFe { protected String cst; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) protected String cClassTrib; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String indDoacao; @XmlElement(name = "gIBSCBS", namespace = "http://www.portalfiscal.inf.br/nfe") protected TCIBS gibscbs; @XmlElement(name = "gIBSCBSMono", namespace = "http://www.portalfiscal.inf.br/nfe") @@ -57,6 +69,12 @@ public class TTribNFe { @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected TTransfCred gTransfCred; @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TAjusteCompet gAjusteCompet; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TEstornoCred gEstornoCred; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected TCredPresOper gCredPresOper; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") protected TCredPresIBSZFM gCredPresIBSZFM; /** @@ -107,6 +125,30 @@ public void setCClassTrib(String value) { this.cClassTrib = value; } + /** + * Obtém o valor da propriedade indDoacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDoacao() { + return indDoacao; + } + + /** + * Define o valor da propriedade indDoacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDoacao(String value) { + this.indDoacao = value; + } + /** * Obtém o valor da propriedade gibscbs. * @@ -179,6 +221,78 @@ public void setGTransfCred(TTransfCred value) { this.gTransfCred = value; } + /** + * Obtém o valor da propriedade gAjusteCompet. + * + * @return + * possible object is + * {@link TAjusteCompet } + * + */ + public TAjusteCompet getGAjusteCompet() { + return gAjusteCompet; + } + + /** + * Define o valor da propriedade gAjusteCompet. + * + * @param value + * allowed object is + * {@link TAjusteCompet } + * + */ + public void setGAjusteCompet(TAjusteCompet value) { + this.gAjusteCompet = value; + } + + /** + * Obtém o valor da propriedade gEstornoCred. + * + * @return + * possible object is + * {@link TEstornoCred } + * + */ + public TEstornoCred getGEstornoCred() { + return gEstornoCred; + } + + /** + * Define o valor da propriedade gEstornoCred. + * + * @param value + * allowed object is + * {@link TEstornoCred } + * + */ + public void setGEstornoCred(TEstornoCred value) { + this.gEstornoCred = value; + } + + /** + * Obtém o valor da propriedade gCredPresOper. + * + * @return + * possible object is + * {@link TCredPresOper } + * + */ + public TCredPresOper getGCredPresOper() { + return gCredPresOper; + } + + /** + * Define o valor da propriedade gCredPresOper. + * + * @param value + * allowed object is + * {@link TCredPresOper } + * + */ + public void setGCredPresOper(TCredPresOper value) { + this.gCredPresOper = value; + } + /** * Obtém o valor da propriedade gCredPresIBSZFM. * diff --git a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribRegular.java b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribRegular.java index d22938d6..74c8254c 100644 --- a/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribRegular.java +++ b/src/main/java/br/com/swconsultoria/nfe/schema_4/enviNFe/TTribRegular.java @@ -21,12 +21,12 @@ * <sequence> * <element name="CSTReg" type="{http://www.portalfiscal.inf.br/nfe}TCST"/> * <element name="cClassTribReg" type="{http://www.portalfiscal.inf.br/nfe}TcClassTrib"/> - * <element name="pAliqEfetRegIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribRegIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pAliqEfetRegIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribRegIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> - * <element name="pAliqEfetRegCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/> - * <element name="vTribRegCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/> + * <element name="pAliqEfetRegIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribRegIBSUF" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pAliqEfetRegIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribRegIBSMun" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> + * <element name="pAliqEfetRegCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04RTC"/> + * <element name="vTribRegCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec1302RTC"/> * </sequence> * </restriction> * </complexContent> From 21109b5a88ca31b88ef2b303fa3242d1285da66e Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Sat, 6 Dec 2025 20:13:57 -0300 Subject: [PATCH 05/20] Atualizado Schemas --- CHANGELOG.md | 2 +- README.md | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cdcf99fc..b25b7656 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,2 @@ # Notas de versão -- Correcao Manifestacao \ No newline at end of file +- Atualizado Schemas PL.010b (v1.30) \ No newline at end of file diff --git a/README.md b/README.md index 41381170..5dc2c02c 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,9 @@ ________________________________________________________________________________ # Historico de Versões +## v4.00.46 - 06/12/2025 - Schemas PL.010b (v1.30) +- Atualizado Schemas PL.010b (v1.30) + ## v4.00.45 - 09/11/2025 - Schemas PL.010b (v1.1) - Adicionado Conculta ao JSON dos CST/Cclasstrib do IBSCBS From 953708611396082cf844083dc2127502a3f804c7 Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Sat, 6 Dec 2025 23:31:30 -0300 Subject: [PATCH 06/20] Adicionado novos eventos --- CHANGELOG.md | 3 +- README.md | 21 +- schemas/e110001_v1.00.xsd | 77 ++ schemas/e112110_v1.00.xsd | 71 ++ schemas/e112120_v1.00 .xsd | 109 +++ schemas/e112130_v1.00.xsd | 121 +++ schemas/e112140_v1.00.xsd | 109 +++ schemas/e112150_v1.00.xsd | 65 ++ schemas/e211110_v1.00.xsd | 136 ++++ schemas/e211120_v1.00.xsd | 126 ++++ schemas/e211124_v1.00.xsd | 109 +++ schemas/e211128_v1.00.xsd | 71 ++ schemas/e211130_v1.00.xsd | 109 +++ schemas/e211140_v1.00.xsd | 109 +++ schemas/e211150_v1.00.xsd | 87 +++ schemas/e212110_v1.00.xsd | 72 ++ schemas/e212120_v1.00.xsd | 71 ++ schemas/e412120_v1.00.xsd | 90 +++ schemas/e412130_v1.00.xsd | 90 +++ schemas/envEvento_v1.00.xsd | 11 + schemas/leiauteEvento_v1.00.xsd | 379 ++++++++++ schemas/procEventoNFe_v1.00.xsd | 11 + schemas/retEnvEvento_v1.00.xsd | 11 + schemas/tmp0000.xsd | 109 --- .../com/swconsultoria/nfe/EventoGenerico.java | 40 + .../java/br/com/swconsultoria/nfe/Nfe.java | 19 +- .../br/com/swconsultoria/nfe/dom/Evento.java | 9 + .../nfe/dom/enuns/EventosEnum.java | 19 +- .../nfe/dom/enuns/ServicosEnum.java | 1 + .../swconsultoria/nfe/dom/enuns/XsdEnum.java | 5 + .../nfe/schema/evento110001/DetEvento.java | 233 ++++++ .../schema/evento110001/ObjectFactory.java | 40 + .../nfe/schema/evento110001/TUf.java | 91 +++ .../nfe/schema/evento110001/TUfEmi.java | 89 +++ .../nfe/schema/evento112110/DetEvento.java | 224 ++++++ .../schema/evento112110/ObjectFactory.java | 40 + .../nfe/schema/evento112110/TUf.java | 91 +++ .../nfe/schema/evento112110/TUfEmi.java | 89 +++ .../nfe/schema/evento112120/DetEvento.java | 502 +++++++++++++ .../schema/evento112120/ObjectFactory.java | 56 ++ .../nfe/schema/evento112120/TUf.java | 91 +++ .../nfe/schema/evento112120/TUfEmi.java | 89 +++ .../nfe/schema/evento112130/DetEvento.java | 568 ++++++++++++++ .../schema/evento112130/ObjectFactory.java | 56 ++ .../nfe/schema/evento112130/TUf.java | 91 +++ .../nfe/schema/evento112130/TUfEmi.java | 89 +++ .../nfe/schema/evento112140/DetEvento.java | 502 +++++++++++++ .../schema/evento112140/ObjectFactory.java | 56 ++ .../nfe/schema/evento112140/TUf.java | 91 +++ .../nfe/schema/evento112140/TUfEmi.java | 89 +++ .../nfe/schema/evento112150/DetEvento.java | 218 ++++++ .../schema/evento112150/ObjectFactory.java | 40 + .../nfe/schema/evento112150/TUf.java | 91 +++ .../nfe/schema/evento112150/TUfEmi.java | 89 +++ .../nfe/schema/evento211110/DetEvento.java | 688 +++++++++++++++++ .../schema/evento211110/ObjectFactory.java | 64 ++ .../nfe/schema/evento211110/TUf.java | 91 +++ .../nfe/schema/evento211110/TUfEmi.java | 89 +++ .../nfe/schema/evento211120/DetEvento.java | 637 ++++++++++++++++ .../schema/evento211120/ObjectFactory.java | 64 ++ .../nfe/schema/evento211120/TUf.java | 91 +++ .../nfe/schema/evento211120/TUfEmi.java | 89 +++ .../nfe/schema/evento211124/DetEvento.java | 502 +++++++++++++ .../schema/evento211124/ObjectFactory.java | 56 ++ .../nfe/schema/evento211124/TUf.java | 91 +++ .../nfe/schema/evento211124/TUfEmi.java | 89 +++ .../nfe/schema/evento211128/DetEvento.java | 225 ++++++ .../schema/evento211128/ObjectFactory.java | 40 + .../nfe/schema/evento211128/TUf.java | 91 +++ .../nfe/schema/evento211128/TUfEmi.java | 89 +++ .../nfe/schema/evento211130/DetEvento.java | 502 +++++++++++++ .../schema/evento211130/ObjectFactory.java | 56 ++ .../nfe/schema/evento211130/TUf.java | 91 +++ .../nfe/schema/evento211130/TUfEmi.java | 89 +++ .../nfe/schema/evento211140/DetEvento.java | 502 +++++++++++++ .../schema/evento211140/ObjectFactory.java | 56 ++ .../nfe/schema/evento211140/TUf.java | 91 +++ .../nfe/schema/evento211140/TUfEmi.java | 89 +++ .../nfe/schema/evento211150/DetEvento.java | 347 +++++++++ .../schema/evento211150/ObjectFactory.java | 48 ++ .../nfe/schema/evento211150/TUf.java | 91 +++ .../nfe/schema/evento211150/TUfEmi.java | 89 +++ .../nfe/schema/evento212110/DetEvento.java | 225 ++++++ .../schema/evento212110/ObjectFactory.java | 40 + .../nfe/schema/evento212110/TUf.java | 91 +++ .../nfe/schema/evento212110/TUfEmi.java | 89 +++ .../nfe/schema/evento212120/DetEvento.java | 225 ++++++ .../schema/evento212120/ObjectFactory.java | 40 + .../nfe/schema/evento212120/TUf.java | 91 +++ .../nfe/schema/evento212120/TUfEmi.java | 89 +++ .../nfe/schema/evento412120/DetEvento.java | 295 ++++++++ .../schema/evento412120/ObjectFactory.java | 40 + .../nfe/schema/evento412120/TUf.java | 91 +++ .../nfe/schema/evento412120/TUfEmi.java | 89 +++ .../nfe/schema/evento412130/DetEvento.java | 295 ++++++++ .../schema/evento412130/ObjectFactory.java | 40 + .../nfe/schema/evento412130/TUf.java | 91 +++ .../nfe/schema/evento412130/TUfEmi.java | 89 +++ .../schema/eventoGenerico/KeyInfoType.java | 91 +++ .../schema/eventoGenerico/ObjectFactory.java | 207 +++++ .../schema/eventoGenerico/ReferenceType.java | 270 +++++++ .../schema/eventoGenerico/SignatureType.java | 147 ++++ .../eventoGenerico/SignatureValueType.java | 86 +++ .../schema/eventoGenerico/SignedInfoType.java | 275 +++++++ .../nfe/schema/eventoGenerico/TEnvEvento.java | 130 ++++ .../nfe/schema/eventoGenerico/TEvento.java | 640 ++++++++++++++++ .../schema/eventoGenerico/TProcEvento.java | 116 +++ .../schema/eventoGenerico/TRetEnvEvento.java | 270 +++++++ .../nfe/schema/eventoGenerico/TRetEvento.java | 705 ++++++++++++++++++ .../nfe/schema/eventoGenerico/TUf.java | 91 +++ .../nfe/schema/eventoGenerico/TUfEmi.java | 89 +++ .../schema/eventoGenerico/TransformType.java | 93 +++ .../schema/eventoGenerico/TransformsType.java | 69 ++ .../schema/eventoGenerico/X509DataType.java | 60 ++ .../nfe/util/ConstantesUtil.java | 1 + .../nfe/util/EventoGenericoUtil.java | 103 +++ .../swconsultoria/nfe/util/RetornoUtil.java | 63 +- .../nfe/util/WebServiceUtil.java | 1 + .../swconsultoria/nfe/util/XmlNfeUtil.java | 15 + .../nfe/exemplos/EventoGenerico.java | 80 ++ 120 files changed, 16292 insertions(+), 152 deletions(-) create mode 100644 schemas/e110001_v1.00.xsd create mode 100644 schemas/e112110_v1.00.xsd create mode 100644 schemas/e112120_v1.00 .xsd create mode 100644 schemas/e112130_v1.00.xsd create mode 100644 schemas/e112140_v1.00.xsd create mode 100644 schemas/e112150_v1.00.xsd create mode 100644 schemas/e211110_v1.00.xsd create mode 100644 schemas/e211120_v1.00.xsd create mode 100644 schemas/e211124_v1.00.xsd create mode 100644 schemas/e211128_v1.00.xsd create mode 100644 schemas/e211130_v1.00.xsd create mode 100644 schemas/e211140_v1.00.xsd create mode 100644 schemas/e211150_v1.00.xsd create mode 100644 schemas/e212110_v1.00.xsd create mode 100644 schemas/e212120_v1.00.xsd create mode 100644 schemas/e412120_v1.00.xsd create mode 100644 schemas/e412130_v1.00.xsd create mode 100644 schemas/envEvento_v1.00.xsd create mode 100644 schemas/leiauteEvento_v1.00.xsd create mode 100644 schemas/procEventoNFe_v1.00.xsd create mode 100644 schemas/retEnvEvento_v1.00.xsd delete mode 100644 schemas/tmp0000.xsd create mode 100644 src/main/java/br/com/swconsultoria/nfe/EventoGenerico.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento110001/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento110001/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento110001/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento110001/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112110/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112110/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112110/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112110/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112120/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112120/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112120/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112120/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112130/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112130/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112130/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112130/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112140/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112140/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112140/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112140/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112150/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112150/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112150/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento112150/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211110/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211110/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211110/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211110/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211120/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211120/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211120/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211120/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211124/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211124/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211124/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211124/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211128/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211128/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211128/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211128/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211130/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211130/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211130/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211130/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211140/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211140/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211140/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211140/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211150/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211150/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211150/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento211150/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento212110/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento212110/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento212110/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento212110/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento212120/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento212120/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento212120/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento212120/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento412120/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento412120/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento412120/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento412120/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento412130/DetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento412130/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento412130/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/evento412130/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/KeyInfoType.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/ObjectFactory.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/ReferenceType.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignatureType.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignatureValueType.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignedInfoType.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TEnvEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TProcEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TRetEnvEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TRetEvento.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TUf.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TUfEmi.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TransformType.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TransformsType.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/X509DataType.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/util/EventoGenericoUtil.java create mode 100644 src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenerico.java diff --git a/CHANGELOG.md b/CHANGELOG.md index b25b7656..8a93beb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,3 @@ # Notas de versão -- Atualizado Schemas PL.010b (v1.30) \ No newline at end of file +- Atualizado Schemas PL.010b (v1.30) +- Adicionado novos eventos da reforma Tributaria \ No newline at end of file diff --git a/README.md b/README.md index 5dc2c02c..7c13f821 100644 --- a/README.md +++ b/README.md @@ -40,32 +40,13 @@ dependencies { Veja a Wiki https://github.com/Samuel-Oliveira/Java_NFe/wiki, para ter um Tutorial Completo. -________________________________________________________________________________________________ -# 🚨 Atenção — Reforma Tributária na NF-e / NFC-e - -Foram adicionadas as classes com o **layout da Reforma Tributária** a partir da versao 4.00.42. - ---- - -## 💼 Consultoria Especializada - -Estamos com uma equipe dedicada exclusivamente à **Reforma Tributária**. -A partir de **Setembro de 2025**, estaremos oferecendo serviços de **consultoria personalizada** para apoiar empresas na migração de seus sistemas para o novo layout. - ---- - -## 📞 Contato - -- Discord: `.samueloliveira` -- E-mail: [samuel@swconsultoria.com.br](mailto:samuel@swconsultoria.com.br) -- WhatsApp/Telefone: **(62) 99306-6546** - ________________________________________________________________________________________________ # Historico de Versões ## v4.00.46 - 06/12/2025 - Schemas PL.010b (v1.30) - Atualizado Schemas PL.010b (v1.30) +- Adicionado novos eventos da reforma Tributaria (Ver exemplo em: https://github.com/Samuel-Oliveira/Java_NFe/blob/master/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenerico.java) ## v4.00.45 - 09/11/2025 - Schemas PL.010b (v1.1) - Adicionado Conculta ao JSON dos CST/Cclasstrib do IBSCBS diff --git a/schemas/e110001_v1.00.xsd b/schemas/e110001_v1.00.xsd new file mode 100644 index 00000000..51138fcb --- /dev/null +++ b/schemas/e110001_v1.00.xsd @@ -0,0 +1,77 @@ + + + + + + + Informações do Cancelamento de evento + + + + + + Informar “Cancelamento de Evento" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Código do evento autorizado a ser cancelado + + + + + + + + + + + + + + + + + + + + + + + + + Informar o número do Protocolo de Autorização do Evento a ser cancelado + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/schemas/e112110_v1.00.xsd b/schemas/e112110_v1.00.xsd new file mode 100644 index 00000000..bd86aced --- /dev/null +++ b/schemas/e112110_v1.00.xsd @@ -0,0 +1,71 @@ + + + + + + + Informações do Evento de Informação de efetivo pagamento integral para liberar crédito presumido do adquirente + + + + + + Descrição do Evento de Informação de efetivo pagamento integral para liberar crédito presumido do adquirente + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de efetiva quitação do pagamento integral referente a NFe referenciada. + Valor deve ser igual a "1" + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/schemas/e112120_v1.00 .xsd b/schemas/e112120_v1.00 .xsd new file mode 100644 index 00000000..ae357533 --- /dev/null +++ b/schemas/e112120_v1.00 .xsd @@ -0,0 +1,109 @@ + + + + + + + Informações do Evento de Importação em ALC/ZFM não convertida em isenção + + + + + + Descrição do evento: "Importação em ALC/ZFM não convertida em isenção" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações de itens integrados ao ativo imobilizado + + + + + + Valor do IBS correspondente à quantidade que não atendeu aos requisitos para a conversão em isenção + + + + + Valor do CBS correspondente à quantidade que não atendeu aos requisitos para a conversão em isenção + + + + + + + + Informar a quantidade que não atendeu os requisitos para a conversão em isenção + + + + + Informar a unidade relativa ao campo gConsumo + + + + + + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/schemas/e112130_v1.00.xsd b/schemas/e112130_v1.00.xsd new file mode 100644 index 00000000..55ff7a32 --- /dev/null +++ b/schemas/e112130_v1.00.xsd @@ -0,0 +1,121 @@ + + + + + + + Informações do Evento de Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor + + + + + + Descrição do evento: "Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor"" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações por item da Nota de Fornecimento + + + + + + Valor do IBS na Nota de Fornecimento correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento. + + + + + Valor da CBS na Nota de Fornecimento correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento. + + + + + + + + Informar a quantidade que foi objeto de roubo, perda, furto ou perecimento + + + + + Informar a unidade relativa ao campo qPerecimento + + + + + + + + + + + + Valor do crédito IBS referente às aquisições a ser estornado correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento + + + + + Valor do crédito CBS referente às aquisições a ser estornado correspondente à quantidade que foi objeto de roubo, perda, furto ou perecimento + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/schemas/e112140_v1.00.xsd b/schemas/e112140_v1.00.xsd new file mode 100644 index 00000000..f19134cd --- /dev/null +++ b/schemas/e112140_v1.00.xsd @@ -0,0 +1,109 @@ + + + + + + + Informações do Evento de Fornecimento não realizado com pagamento antecipado + + + + + + "Descrição do evento: "Fornecimento não realizado com pagamento antecipado" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações por item da Nota de Fornecimento + + + + + + Valor do IBS na nota de débito de pagamento antecipado correspondente à quantidade que não foi fornecida + + + + + Valor da CBS na nota de débito de pagamento antecipado correspondente à quantidade que não foi fornecida. + + + + + + + + Informar a quantidade que não foi fornecida e teve o imposto antecipado + + + + + Informar a unidade relativa ao campo qNaoFornecida + + + + + + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/schemas/e112150_v1.00.xsd b/schemas/e112150_v1.00.xsd new file mode 100644 index 00000000..a37d19d5 --- /dev/null +++ b/schemas/e112150_v1.00.xsd @@ -0,0 +1,65 @@ + + + + + + + Informações do Evento de Atualização da Data de Previsão de Entrega + + + + + + Descrição do evento: "Atualização da Data de Previsão de Entrega" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 1=Empresa emitente + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Data da previsão de entrega ou disponibilização do bem. + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/schemas/e211110_v1.00.xsd b/schemas/e211110_v1.00.xsd new file mode 100644 index 00000000..7912b021 --- /dev/null +++ b/schemas/e211110_v1.00.xsd @@ -0,0 +1,136 @@ + + + + + + + Informações do Evento de Solicitação de Apropriação de crédito presumido + + + + + + Descrição do Evento de Solicitação de Apropriação de crédito presumido + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa destinatario + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações de crédito presumido por item + + + + + + Valor do base de cálculo do item + + + + + + + + Usar tabela Cred Presumido, para o emitente da nota. + + + + + + + + + + + Percentual do Crédito Presumido + + + + + Valor do Crédito Presumido + + + + + + + + + + + Usar tabela Cred Presumido, para o emitente da nota. + + + + + + + + + + + Percentual do Crédito Presumido + + + + + Valor do Crédito Presumido + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do evento de Irregularidade Fiscal + + + + + + + + + + + + + + + diff --git a/schemas/e211120_v1.00.xsd b/schemas/e211120_v1.00.xsd new file mode 100644 index 00000000..3413513f --- /dev/null +++ b/schemas/e211120_v1.00.xsd @@ -0,0 +1,126 @@ + + + + + + + Informações do Evento de Destinação de item para consumo pessoal + + + + + + Descrição do Evento de Destinação de item para consumo pessoal + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Caso NF-e de Importação, informar 1=Empresa Emitente. + Demais casos, informar 2=Empresa destinatária + + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações por item da NF-e de Aquisição + + + + + + Valor do IBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal + + + + + Valor da CBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal + + + + + + + + Informar a quantidade para consumo de pessoa física + + + + + Informar a unidade relativa ao campo gConsumo + + + + + + + + + + + + + + + + + Informar a chave da nota (NFe ou NFCe) emitida para o fornecimento nos casos em que a legislação obriga a emissão de documento fiscal. + + + + + Corresponde ao atributo “nItem” do elemento “det” do documento referenciado + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/schemas/e211124_v1.00.xsd b/schemas/e211124_v1.00.xsd new file mode 100644 index 00000000..c254edb1 --- /dev/null +++ b/schemas/e211124_v1.00.xsd @@ -0,0 +1,109 @@ + + + + + + + Informações do Evento de Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente + + + + + + Descrição do evento: “Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa destinataria + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações por item da Nota de Aquisição + + + + + + Valor do IBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal + + + + + Valor da CBS na nota de aquisição correspondente à quantidade destinada a uso e consumo pessoal + + + + + + + + Informar a quantidade que foi objeto de roubo, perda, furto ou perecimento + + + + + Informar a unidade relativa ao campo qPerecimento + + + + + + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/schemas/e211128_v1.00.xsd b/schemas/e211128_v1.00.xsd new file mode 100644 index 00000000..e06b2067 --- /dev/null +++ b/schemas/e211128_v1.00.xsd @@ -0,0 +1,71 @@ + + + + + + + Informações do Evento de Aceite de débito na apuração por emissão de nota de crédito + + + + + + Descrição do evento: "Aceite de débito na apuração por emissão de nota de crédito" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa destinataria + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de concordância com o valor da nota de crédito que lançaram IBS e CBS na apuração assistida. Valores: 0 = não aceite; 1 = aceite. + + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/schemas/e211130_v1.00.xsd b/schemas/e211130_v1.00.xsd new file mode 100644 index 00000000..2fbf0a71 --- /dev/null +++ b/schemas/e211130_v1.00.xsd @@ -0,0 +1,109 @@ + + + + + + + Informações do Evento de Imobilização de Item + + + + + + Descrição do Evento de Imobilização de Item + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa Destinataria + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações de itens integrados ao ativo imobilizado + + + + + + Valor do IBS relativo à imobilização + + + + + Valor da CBS relativo à imobilização + + + + + + + + Informar a quantidade do item a ser imobilizado + + + + + Informar a unidade relativa ao campo qImobilizado + + + + + + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + + + + + diff --git a/schemas/e211140_v1.00.xsd b/schemas/e211140_v1.00.xsd new file mode 100644 index 00000000..a993f531 --- /dev/null +++ b/schemas/e211140_v1.00.xsd @@ -0,0 +1,109 @@ + + + + + + + Informações do Evento de Solicitação de Apropriação de Crédito de Combustível + + + + + + Descrição do Evento de Solicitação de Apropriação de Crédito de Combustível + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa Destinataria + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações de consumo de combustíveis + + + + + + Valor do IBS relativo ao consumo de combustível na nota de aquisição + + + + + Valor da CBS relativo ao consumo de combustível na nota de aquisição + + + + + + + + Informar a quantidade de consumo do item + + + + + Informar a unidade relativa ao campo qComb + + + + + + + + + + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do evento de Irregularidade Fiscal + + + + + + + + + + + + + + + diff --git a/schemas/e211150_v1.00.xsd b/schemas/e211150_v1.00.xsd new file mode 100644 index 00000000..77e201b3 --- /dev/null +++ b/schemas/e211150_v1.00.xsd @@ -0,0 +1,87 @@ + + + + + + + Informações do Evento de Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente + + + + + + Descrição do evento: "Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 2=Empresa Destinataria + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco;6=RFB; 9=Outros Órgãos; + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Informações de crédito + + + + + + Valor da solicitação de crédito a ser apropriado de IBS + + + + + Valor da solicitação de crédito a ser apropriado de CBS + + + + + + Corresponde ao atributo “nItem” do elemento “det” da NF-e de importação + + + + + + + + Versão do evento de Irregularidade Fiscal + + + + + + + + + + + + + + + diff --git a/schemas/e212110_v1.00.xsd b/schemas/e212110_v1.00.xsd new file mode 100644 index 00000000..3c1ef3d5 --- /dev/null +++ b/schemas/e212110_v1.00.xsd @@ -0,0 +1,72 @@ + + + + + + + Informações do Evento de Manifestação sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão + + + + + + Descrição do evento: "Manifestação sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 8=Empresa sucessora. + Valores: 1=Empresa Emitente, 2=Empresa destinatária; 3=Empresa; 5=Fisco; 6=RFB; 8= Empresa sucessora; 9=Outros Órgãos. + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. + Valores: 0=Não Aceite; 1=Aceite. + + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/schemas/e212120_v1.00.xsd b/schemas/e212120_v1.00.xsd new file mode 100644 index 00000000..deaa00b1 --- /dev/null +++ b/schemas/e212120_v1.00.xsd @@ -0,0 +1,71 @@ + + + + + + + Informações do Evento de Manifestação sobre Pedido de Transferência de Créditode CBS em Operação de Sucessão + + + + + + Descrição do evento: "Manifestação sobre Pedido de Transferência de Créditode CBS em Operação de Sucessão" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 8=Empresa sucessora. + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada. + Valores: 0=Não Aceite; 1=Aceite. + + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/schemas/e412120_v1.00.xsd b/schemas/e412120_v1.00.xsd new file mode 100644 index 00000000..6aa89fdb --- /dev/null +++ b/schemas/e412120_v1.00.xsd @@ -0,0 +1,90 @@ + + + + + + + Informações do Evento de Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operações de Sucessão + + + + + + "Descrição do evento: Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 5=Fisco + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada.Valores: 0=Não Aceite; 1=Aceite. + + + + + + + + + + + + 1–Falta de manifestação de todas as sucessoras; 2 – Outros. + + + + + + + + + + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/schemas/e412130_v1.00.xsd b/schemas/e412130_v1.00.xsd new file mode 100644 index 00000000..b70cf524 --- /dev/null +++ b/schemas/e412130_v1.00.xsd @@ -0,0 +1,90 @@ + + + + + + + Informações do Evento de Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operação de Sucessão + + + + + + Descrição do evento: "Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operação de Sucessão" + + + + + + + + + + Código do Órgão Autor do Evento. Informar o Código da UF para este Evento. + + + + + Informar 5=Fisco + + + + + + + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Indicador de aceitação do valor de transferência para a empresa que emitiu a nota referenciada.Valores: 0=Não Aceite; 1=Aceite. + + + + + + + + + + + + 1–Falta de manifestação de todas as sucessoras; 2 – Outros. + + + + + + + + + + + + + + + + + + + + + Versão do leiaute do evento + + + + + + + + + + + diff --git a/schemas/envEvento_v1.00.xsd b/schemas/envEvento_v1.00.xsd new file mode 100644 index 00000000..2839cb1f --- /dev/null +++ b/schemas/envEvento_v1.00.xsd @@ -0,0 +1,11 @@ + + + + + + Schema XML de validação do lote de envio do Evento + + + diff --git a/schemas/leiauteEvento_v1.00.xsd b/schemas/leiauteEvento_v1.00.xsd new file mode 100644 index 00000000..d6f2df7c --- /dev/null +++ b/schemas/leiauteEvento_v1.00.xsd @@ -0,0 +1,379 @@ + + + + + + + Tipo Evento + + + + + + + + Código do órgão de recepção do Evento. Utilizar a Tabela do IBGE extendida, utilizar 90 para identificar o Ambiente Nacional + + + + + Identificação do Ambiente: + 1 - Produção + 2 - Homologação + + + + + Identificação do autor do evento + + + + CNPJ + + + + + CPF + + + + + + Chave de Acesso da NF-e vinculada ao evento + + + + + Data e Hora do Evento, formato UTC (AAAA-MM-DDThh:mm:ssTZD, onde TZD = +hh:mm ou -hh:mm) + + + + + Tipo do Evento + + + + + + + + + + + Seqüencial do evento para o mesmo tipo de evento. Para maioria dos eventos será 1, nos casos em que possa existir mais de um evento, como é o caso da carta de correção, o autor do evento deve numerar de forma seqüencial. + + + + + + + + + + + Versão do Tipo do Evento + + + + + + + + + + + + + informações específicas do evento + + + + + + + + + + Identificador da TAG a ser assinada, a regra de formação do Id é: + “ID” + tpEvento + chave da NF-e + nSeqEvento + + + + + + + + + + + + + + + + Tipo retorno do Evento + + + + + + + + Identificação do Ambiente: + 1 - Produção + 2 - Homologação + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Código do órgão de recepção do Evento. Utilizar a Tabela do IBGE extendida, utilizar 90 para identificar o Ambiente Nacional + + + + + Código do status da registro do Evento + + + + + Descrição literal do status do registro do Evento + + + + + Chave de Acesso NF-e vinculada + + + + + Tipo do Evento vinculado + + + + + + + + + + + Descrição do Evento + + + + + + + + + + + Seqüencial do evento + + + + + + + + + + + Código do órgão de autor do Evento. Utilizar a Tabela do IBGE extendida, utilizar 90 para identificar o Ambiente Nacional + + + + + Identificação do destinatpario da NF-e + + + + CNPJ Destinatário + + + + + CPF Destiantário + + + + + + email do destinatário + + + + + + + + + + + Data e Hora de registro do evento formato UTC AAAA-MM-DDTHH:MM:SSTZD + + + + + + + + + + + Número do protocolo de registro do evento + + + + + + + + + + + + + + + + + + + Tipo Lote de Envio + + + + + + + + + + + + + + + + + Tipo Retorno de Lote de Envio + + + + + + + + + + + + + Identificação do Ambiente: + 1 - Produção + 2 - Homologação + + + + + Versão do Aplicativo que recebeu o Evento + + + + + Código do òrgao que registrou o Evento + + + + + Código do status da registro do Evento + + + + + Descrição literal do status do registro do Evento + + + + + + + + + Tipo procEvento + + + + + + + + + + Tipo Versão do EnvEvento + + + + + + + + + Tipo Versão do Evento + + + + + + + + + + \ No newline at end of file diff --git a/schemas/procEventoNFe_v1.00.xsd b/schemas/procEventoNFe_v1.00.xsd new file mode 100644 index 00000000..c94bc4ee --- /dev/null +++ b/schemas/procEventoNFe_v1.00.xsd @@ -0,0 +1,11 @@ + + + + + + Schema XML de validação do proc Evento NFe + + + diff --git a/schemas/retEnvEvento_v1.00.xsd b/schemas/retEnvEvento_v1.00.xsd new file mode 100644 index 00000000..58c8d46c --- /dev/null +++ b/schemas/retEnvEvento_v1.00.xsd @@ -0,0 +1,11 @@ + + + + + + Schema XML de Retorno da envio do Evento + + + diff --git a/schemas/tmp0000.xsd b/schemas/tmp0000.xsd deleted file mode 100644 index 0fed33b3..00000000 --- a/schemas/tmp0000.xsd +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - Schema XML de validação do evento de Comprovante de Entrega da NF-e - - - - - - - - - - - - - - Versão do Aplicativo do Autor do Evento - - - - - Data e hora do final da tentativa entrega. Formato AAAA-MMDDThh:mm:ssTZD - - - - - - - Número da tentativa de entrega que não teve sucesso - - - - - - - - - - Motivo do insucesso - 1 – Recebedor não encontrado - 2 – Recusa do recebedor - 3 – Endereço inexistente - 4 – Outros (exige informar justificativa) - - - - - - - - - - - - - Justificativa do motivo do insucesso. Informar apenas para tpMotivo=4 - - - - - - - - - - - Latitude do ponto de entrega - - - - - Longitude do ponto de entrega - - - - - Hash (SHA1) no formato Base64 resultante da concatenação: Chave de acesso da NFe + Base64 da imagem capturada da entrega (Exemplo: imagem capturada da assinatura eletrônica, digital do recebedor, foto, etc) - O hashCSRT é o resultado das funções SHA-1 e base64 do token CSRT fornecido pelo fisco + chave de acesso do DF-e. (Implementação em futura NT) -Observação: 28 caracteres são representados no schema como 20 bytes do tipo base64Binary - - - - - - - - - - Data e hora da geração do hash da tentativa de entrega. Formato AAAA-MMDDThh:mm:ssTZD. - - - - - - - - - - - - - - - diff --git a/src/main/java/br/com/swconsultoria/nfe/EventoGenerico.java b/src/main/java/br/com/swconsultoria/nfe/EventoGenerico.java new file mode 100644 index 00000000..7d392fb8 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/EventoGenerico.java @@ -0,0 +1,40 @@ +package br.com.swconsultoria.nfe; + +import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe; +import br.com.swconsultoria.nfe.dom.enuns.DocumentoEnum; +import br.com.swconsultoria.nfe.dom.enuns.ServicosEnum; +import br.com.swconsultoria.nfe.exception.NfeException; +import br.com.swconsultoria.nfe.schema.eventoGenerico.TEnvEvento; +import br.com.swconsultoria.nfe.schema.eventoGenerico.TRetEnvEvento; +import br.com.swconsultoria.nfe.util.XmlNfeUtil; + +import javax.xml.bind.JAXBException; + +/** + * @author Samuel Oliveira - samuel@swconsultoria.com.br Data: 28/09/2017 - 11:11 + */ +class EventoGenerico { + + private EventoGenerico(){} + + static TRetEnvEvento evento(ConfiguracoesNfe config, TEnvEvento enviEvento, boolean valida) + throws NfeException { + + try { + + String xml = XmlNfeUtil.objectToXml(enviEvento, config. getEncode()); + xml = xml.replace(" xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\"", "") + .replace("Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Cancelamento de Evento"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="tpEventoAut">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="112110"/>
+ *               <enumeration value="112120"/>
+ *               <enumeration value="112130"/>
+ *               <enumeration value="112140"/>
+ *               <enumeration value="112150"/>
+ *               <enumeration value="211110"/>
+ *               <enumeration value="211120"/>
+ *               <enumeration value="211124"/>
+ *               <enumeration value="211128"/>
+ *               <enumeration value="211130"/>
+ *               <enumeration value="211140"/>
+ *               <enumeration value="211150"/>
+ *               <enumeration value="212110"/>
+ *               <enumeration value="212120"/>
+ *               <enumeration value="412120"/>
+ *               <enumeration value="412130"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="nProtEvento" type="{http://www.portalfiscal.inf.br/nfe}TProt"/>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "verAplic", + "tpEventoAut", + "nProtEvento" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpEventoAut; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String nProtEvento; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Obtém o valor da propriedade tpEventoAut. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpEventoAut() { + return tpEventoAut; + } + + /** + * Define o valor da propriedade tpEventoAut. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpEventoAut(String value) { + this.tpEventoAut = value; + } + + /** + * Obtém o valor da propriedade nProtEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNProtEvento() { + return nProtEvento; + } + + /** + * Define o valor da propriedade nProtEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNProtEvento(String value) { + this.nProtEvento = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento110001/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento110001/ObjectFactory.java new file mode 100644 index 00000000..4f8c26e3 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento110001/ObjectFactory.java @@ -0,0 +1,40 @@ + +package br.com.swconsultoria.nfe.schema.evento110001; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evtCancEvento package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evtCancEvento + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento110001/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento110001/TUf.java new file mode 100644 index 00000000..4b5a2144 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento110001/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento110001; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento110001/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento110001/TUfEmi.java new file mode 100644 index 00000000..a1929478 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento110001/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento110001; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/DetEvento.java new file mode 100644 index 00000000..747ba4e6 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/DetEvento.java @@ -0,0 +1,224 @@ + +package br.com.swconsultoria.nfe.schema.evento112110; + +import javax.xml.bind.annotation.*; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Informação de efetivo pagamento integral para liberar crédito presumido do adquirente"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="indQuitacao">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "indQuitacao" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String indQuitacao; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Obtém o valor da propriedade indQuitacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndQuitacao() { + return indQuitacao; + } + + /** + * Define o valor da propriedade indQuitacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndQuitacao(String value) { + this.indQuitacao = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/ObjectFactory.java new file mode 100644 index 00000000..179c8c67 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/ObjectFactory.java @@ -0,0 +1,40 @@ + +package br.com.swconsultoria.nfe.schema.evento112110; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento112110 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento112110 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/TUf.java new file mode 100644 index 00000000..f1f67924 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento112110; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/TUfEmi.java new file mode 100644 index 00000000..35dc2daa --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112110/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento112110; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/DetEvento.java new file mode 100644 index 00000000..9fea8975 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/DetEvento.java @@ -0,0 +1,502 @@ + +package br.com.swconsultoria.nfe.schema.evento112120; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Importação em ALC/ZFM não convertida em isenção"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="gConsumo" maxOccurs="990">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="gControleEstoque">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <element name="qtde" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+ *                             <element name="unidade">
+ *                               <simpleType>
+ *                                 <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *                                   <maxLength value="6"/>
+ *                                   <minLength value="1"/>
+ *                                 </restriction>
+ *                               </simpleType>
+ *                             </element>
+ *                           </sequence>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                 </sequence>
+ *                 <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "gConsumo" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected List gConsumo; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Gets the value of the gConsumo property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gConsumo property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGConsumo().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link DetEvento.GConsumo } + * + * + */ + public List getGConsumo() { + if (gConsumo == null) { + gConsumo = new ArrayList(); + } + return this.gConsumo; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="gControleEstoque">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <element name="qtde" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+     *                   <element name="unidade">
+     *                     <simpleType>
+     *                       <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+     *                         <maxLength value="6"/>
+     *                         <minLength value="1"/>
+     *                       </restriction>
+     *                     </simpleType>
+     *                   </element>
+     *                 </sequence>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *       </sequence>
+     *       <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibs", + "vcbs", + "gControleEstoque" + }) + public static class GConsumo { + + @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibs; + @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected DetEvento.GConsumo.GControleEstoque gControleEstoque; + @XmlAttribute(name = "nItem", required = true) + protected String nItem; + + /** + * Obtém o valor da propriedade vibs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBS() { + return vibs; + } + + /** + * Define o valor da propriedade vibs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBS(String value) { + this.vibs = value; + } + + /** + * Obtém o valor da propriedade vcbs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBS() { + return vcbs; + } + + /** + * Define o valor da propriedade vcbs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBS(String value) { + this.vcbs = value; + } + + /** + * Obtém o valor da propriedade gControleEstoque. + * + * @return + * possible object is + * {@link DetEvento.GConsumo.GControleEstoque } + * + */ + public DetEvento.GConsumo.GControleEstoque getGControleEstoque() { + return gControleEstoque; + } + + /** + * Define o valor da propriedade gControleEstoque. + * + * @param value + * allowed object is + * {@link DetEvento.GConsumo.GControleEstoque } + * + */ + public void setGControleEstoque(DetEvento.GConsumo.GControleEstoque value) { + this.gControleEstoque = value; + } + + /** + * Obtém o valor da propriedade nItem. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNItem() { + return nItem; + } + + /** + * Define o valor da propriedade nItem. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNItem(String value) { + this.nItem = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <element name="qtde" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+         *         <element name="unidade">
+         *           <simpleType>
+         *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+         *               <maxLength value="6"/>
+         *               <minLength value="1"/>
+         *             </restriction>
+         *           </simpleType>
+         *         </element>
+         *       </sequence>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "qtde", + "unidade" + }) + public static class GControleEstoque { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String qtde; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String unidade; + + /** + * Obtém o valor da propriedade qtde. + * + * @return + * possible object is + * {@link String } + * + */ + public String getQtde() { + return qtde; + } + + /** + * Define o valor da propriedade qtde. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setQtde(String value) { + this.qtde = value; + } + + /** + * Obtém o valor da propriedade unidade. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUnidade() { + return unidade; + } + + /** + * Define o valor da propriedade unidade. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUnidade(String value) { + this.unidade = value; + } + + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/ObjectFactory.java new file mode 100644 index 00000000..80a43958 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/ObjectFactory.java @@ -0,0 +1,56 @@ + +package br.com.swconsultoria.nfe.schema.evento112120; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento112120 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento112120 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + + /** + * Create an instance of {@link DetEvento.GConsumo } + * + */ + public DetEvento.GConsumo createDetEventoGConsumo() { + return new DetEvento.GConsumo(); + } + + /** + * Create an instance of {@link DetEvento.GConsumo.GControleEstoque } + * + */ + public DetEvento.GConsumo.GControleEstoque createDetEventoGConsumoGControleEstoque() { + return new DetEvento.GConsumo.GControleEstoque(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/TUf.java new file mode 100644 index 00000000..3104a599 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento112120; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/TUfEmi.java new file mode 100644 index 00000000..a9a1626d --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112120/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento112120; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/DetEvento.java new file mode 100644 index 00000000..5e49b736 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/DetEvento.java @@ -0,0 +1,568 @@ + +package br.com.swconsultoria.nfe.schema.evento112130; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Perecimento, perda, roubo ou furto durante o transporte contratado pelo fornecedor"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="gPerecimento" maxOccurs="990">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="gControleEstoque">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <element name="qPerecimento" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+ *                             <element name="uPerecimento">
+ *                               <simpleType>
+ *                                 <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *                                   <maxLength value="6"/>
+ *                                   <minLength value="1"/>
+ *                                 </restriction>
+ *                               </simpleType>
+ *                             </element>
+ *                             <sequence>
+ *                               <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                               <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                             </sequence>
+ *                           </sequence>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                 </sequence>
+ *                 <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "gPerecimento" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected List gPerecimento; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Gets the value of the gPerecimento property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gPerecimento property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGPerecimento().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link DetEvento.GPerecimento } + * + * + */ + public List getGPerecimento() { + if (gPerecimento == null) { + gPerecimento = new ArrayList(); + } + return this.gPerecimento; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="gControleEstoque">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <element name="qPerecimento" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+     *                   <element name="uPerecimento">
+     *                     <simpleType>
+     *                       <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+     *                         <maxLength value="6"/>
+     *                         <minLength value="1"/>
+     *                       </restriction>
+     *                     </simpleType>
+     *                   </element>
+     *                   <sequence>
+     *                     <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *                     <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *                   </sequence>
+     *                 </sequence>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *       </sequence>
+     *       <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibs", + "vcbs", + "gControleEstoque" + }) + public static class GPerecimento { + + @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibs; + @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected DetEvento.GPerecimento.GControleEstoque gControleEstoque; + @XmlAttribute(name = "nItem", required = true) + protected String nItem; + + /** + * Obtém o valor da propriedade vibs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBS() { + return vibs; + } + + /** + * Define o valor da propriedade vibs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBS(String value) { + this.vibs = value; + } + + /** + * Obtém o valor da propriedade vcbs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBS() { + return vcbs; + } + + /** + * Define o valor da propriedade vcbs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBS(String value) { + this.vcbs = value; + } + + /** + * Obtém o valor da propriedade gControleEstoque. + * + * @return + * possible object is + * {@link DetEvento.GPerecimento.GControleEstoque } + * + */ + public DetEvento.GPerecimento.GControleEstoque getGControleEstoque() { + return gControleEstoque; + } + + /** + * Define o valor da propriedade gControleEstoque. + * + * @param value + * allowed object is + * {@link DetEvento.GPerecimento.GControleEstoque } + * + */ + public void setGControleEstoque(DetEvento.GPerecimento.GControleEstoque value) { + this.gControleEstoque = value; + } + + /** + * Obtém o valor da propriedade nItem. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNItem() { + return nItem; + } + + /** + * Define o valor da propriedade nItem. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNItem(String value) { + this.nItem = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <element name="qPerecimento" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+         *         <element name="uPerecimento">
+         *           <simpleType>
+         *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+         *               <maxLength value="6"/>
+         *               <minLength value="1"/>
+         *             </restriction>
+         *           </simpleType>
+         *         </element>
+         *         <sequence>
+         *           <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+         *           <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+         *         </sequence>
+         *       </sequence>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "qPerecimento", + "uPerecimento", + "vibs", + "vcbs" + }) + public static class GControleEstoque { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String qPerecimento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String uPerecimento; + @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibs; + @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbs; + + /** + * Obtém o valor da propriedade qPerecimento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getQPerecimento() { + return qPerecimento; + } + + /** + * Define o valor da propriedade qPerecimento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setQPerecimento(String value) { + this.qPerecimento = value; + } + + /** + * Obtém o valor da propriedade uPerecimento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUPerecimento() { + return uPerecimento; + } + + /** + * Define o valor da propriedade uPerecimento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUPerecimento(String value) { + this.uPerecimento = value; + } + + /** + * Obtém o valor da propriedade vibs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBS() { + return vibs; + } + + /** + * Define o valor da propriedade vibs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBS(String value) { + this.vibs = value; + } + + /** + * Obtém o valor da propriedade vcbs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBS() { + return vcbs; + } + + /** + * Define o valor da propriedade vcbs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBS(String value) { + this.vcbs = value; + } + + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/ObjectFactory.java new file mode 100644 index 00000000..6ecb5601 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/ObjectFactory.java @@ -0,0 +1,56 @@ + +package br.com.swconsultoria.nfe.schema.evento112130; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento112130 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento112130 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + + /** + * Create an instance of {@link DetEvento.GPerecimento } + * + */ + public DetEvento.GPerecimento createDetEventoGPerecimento() { + return new DetEvento.GPerecimento(); + } + + /** + * Create an instance of {@link DetEvento.GPerecimento.GControleEstoque } + * + */ + public DetEvento.GPerecimento.GControleEstoque createDetEventoGPerecimentoGControleEstoque() { + return new DetEvento.GPerecimento.GControleEstoque(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/TUf.java new file mode 100644 index 00000000..a1e7671f --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento112130; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/TUfEmi.java new file mode 100644 index 00000000..d425ba49 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112130/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento112130; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/DetEvento.java new file mode 100644 index 00000000..b1267568 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/DetEvento.java @@ -0,0 +1,502 @@ + +package br.com.swconsultoria.nfe.schema.evento112140; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Fornecimento não realizado com pagamento antecipado"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="gItemNaoFornecido" maxOccurs="990">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="gControleEstoque">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <element name="qNaoFornecida" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+ *                             <element name="uNaoFornecida">
+ *                               <simpleType>
+ *                                 <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *                                   <maxLength value="6"/>
+ *                                   <minLength value="1"/>
+ *                                 </restriction>
+ *                               </simpleType>
+ *                             </element>
+ *                           </sequence>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                 </sequence>
+ *                 <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "gItemNaoFornecido" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected List gItemNaoFornecido; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Gets the value of the gItemNaoFornecido property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gItemNaoFornecido property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGItemNaoFornecido().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link DetEvento.GItemNaoFornecido } + * + * + */ + public List getGItemNaoFornecido() { + if (gItemNaoFornecido == null) { + gItemNaoFornecido = new ArrayList(); + } + return this.gItemNaoFornecido; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="gControleEstoque">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <element name="qNaoFornecida" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+     *                   <element name="uNaoFornecida">
+     *                     <simpleType>
+     *                       <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+     *                         <maxLength value="6"/>
+     *                         <minLength value="1"/>
+     *                       </restriction>
+     *                     </simpleType>
+     *                   </element>
+     *                 </sequence>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *       </sequence>
+     *       <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibs", + "vcbs", + "gControleEstoque" + }) + public static class GItemNaoFornecido { + + @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibs; + @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected DetEvento.GItemNaoFornecido.GControleEstoque gControleEstoque; + @XmlAttribute(name = "nItem", required = true) + protected String nItem; + + /** + * Obtém o valor da propriedade vibs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBS() { + return vibs; + } + + /** + * Define o valor da propriedade vibs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBS(String value) { + this.vibs = value; + } + + /** + * Obtém o valor da propriedade vcbs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBS() { + return vcbs; + } + + /** + * Define o valor da propriedade vcbs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBS(String value) { + this.vcbs = value; + } + + /** + * Obtém o valor da propriedade gControleEstoque. + * + * @return + * possible object is + * {@link DetEvento.GItemNaoFornecido.GControleEstoque } + * + */ + public DetEvento.GItemNaoFornecido.GControleEstoque getGControleEstoque() { + return gControleEstoque; + } + + /** + * Define o valor da propriedade gControleEstoque. + * + * @param value + * allowed object is + * {@link DetEvento.GItemNaoFornecido.GControleEstoque } + * + */ + public void setGControleEstoque(DetEvento.GItemNaoFornecido.GControleEstoque value) { + this.gControleEstoque = value; + } + + /** + * Obtém o valor da propriedade nItem. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNItem() { + return nItem; + } + + /** + * Define o valor da propriedade nItem. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNItem(String value) { + this.nItem = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <element name="qNaoFornecida" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+         *         <element name="uNaoFornecida">
+         *           <simpleType>
+         *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+         *               <maxLength value="6"/>
+         *               <minLength value="1"/>
+         *             </restriction>
+         *           </simpleType>
+         *         </element>
+         *       </sequence>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "qNaoFornecida", + "uNaoFornecida" + }) + public static class GControleEstoque { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String qNaoFornecida; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String uNaoFornecida; + + /** + * Obtém o valor da propriedade qNaoFornecida. + * + * @return + * possible object is + * {@link String } + * + */ + public String getQNaoFornecida() { + return qNaoFornecida; + } + + /** + * Define o valor da propriedade qNaoFornecida. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setQNaoFornecida(String value) { + this.qNaoFornecida = value; + } + + /** + * Obtém o valor da propriedade uNaoFornecida. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUNaoFornecida() { + return uNaoFornecida; + } + + /** + * Define o valor da propriedade uNaoFornecida. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUNaoFornecida(String value) { + this.uNaoFornecida = value; + } + + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/ObjectFactory.java new file mode 100644 index 00000000..52f0ed51 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/ObjectFactory.java @@ -0,0 +1,56 @@ + +package br.com.swconsultoria.nfe.schema.evento112140; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento112140 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento112140 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + + /** + * Create an instance of {@link DetEvento.GItemNaoFornecido } + * + */ + public DetEvento.GItemNaoFornecido createDetEventoGItemNaoFornecido() { + return new DetEvento.GItemNaoFornecido(); + } + + /** + * Create an instance of {@link DetEvento.GItemNaoFornecido.GControleEstoque } + * + */ + public DetEvento.GItemNaoFornecido.GControleEstoque createDetEventoGItemNaoFornecidoGControleEstoque() { + return new DetEvento.GItemNaoFornecido.GControleEstoque(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/TUf.java new file mode 100644 index 00000000..8a208077 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento112140; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/TUfEmi.java new file mode 100644 index 00000000..1a801368 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112140/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento112140; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/DetEvento.java new file mode 100644 index 00000000..1a3e9b81 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/DetEvento.java @@ -0,0 +1,218 @@ + +package br.com.swconsultoria.nfe.schema.evento112150; + +import javax.xml.bind.annotation.*; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Atualização da Data de Previsão de Entrega"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="dPrevEntrega" type="{http://www.portalfiscal.inf.br/nfe}TData"/>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "dPrevEntrega" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String dPrevEntrega; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Obtém o valor da propriedade dPrevEntrega. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDPrevEntrega() { + return dPrevEntrega; + } + + /** + * Define o valor da propriedade dPrevEntrega. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDPrevEntrega(String value) { + this.dPrevEntrega = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/ObjectFactory.java new file mode 100644 index 00000000..e4beef8b --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/ObjectFactory.java @@ -0,0 +1,40 @@ + +package br.com.swconsultoria.nfe.schema.evento112150; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento112150 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento112150 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/TUf.java new file mode 100644 index 00000000..768a488f --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento112150; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/TUfEmi.java new file mode 100644 index 00000000..3ead8364 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento112150/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento112150; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/DetEvento.java new file mode 100644 index 00000000..103d0e87 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/DetEvento.java @@ -0,0 +1,688 @@ + +package br.com.swconsultoria.nfe.schema.evento211110; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Solicitação de Apropriação de crédito presumido"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="2"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="gCredPres" maxOccurs="990">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="vBC" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="gIBS" minOccurs="0">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <element name="cCredPres">
+ *                               <simpleType>
+ *                                 <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *                                   <whiteSpace value="preserve"/>
+ *                                   <pattern value="[0-9]{2}"/>
+ *                                 </restriction>
+ *                               </simpleType>
+ *                             </element>
+ *                             <element name="pCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/>
+ *                             <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/>
+ *                           </sequence>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                   <element name="gCBS" minOccurs="0">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <element name="cCredPres">
+ *                               <simpleType>
+ *                                 <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *                                   <whiteSpace value="preserve"/>
+ *                                   <pattern value="[0-9]{2}"/>
+ *                                 </restriction>
+ *                               </simpleType>
+ *                             </element>
+ *                             <element name="pCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/>
+ *                             <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/>
+ *                           </sequence>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                 </sequence>
+ *                 <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "gCredPres" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected List gCredPres; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Gets the value of the gCredPres property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gCredPres property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGCredPres().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link DetEvento.GCredPres } + * + * + */ + public List getGCredPres() { + if (gCredPres == null) { + gCredPres = new ArrayList(); + } + return this.gCredPres; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vBC" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="gIBS" minOccurs="0">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <element name="cCredPres">
+     *                     <simpleType>
+     *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+     *                         <whiteSpace value="preserve"/>
+     *                         <pattern value="[0-9]{2}"/>
+     *                       </restriction>
+     *                     </simpleType>
+     *                   </element>
+     *                   <element name="pCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/>
+     *                   <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/>
+     *                 </sequence>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *         <element name="gCBS" minOccurs="0">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <element name="cCredPres">
+     *                     <simpleType>
+     *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+     *                         <whiteSpace value="preserve"/>
+     *                         <pattern value="[0-9]{2}"/>
+     *                       </restriction>
+     *                     </simpleType>
+     *                   </element>
+     *                   <element name="pCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/>
+     *                   <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/>
+     *                 </sequence>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *       </sequence>
+     *       <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vbc", + "gibs", + "gcbs" + }) + public static class GCredPres { + + @XmlElement(name = "vBC", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vbc; + @XmlElement(name = "gIBS", namespace = "http://www.portalfiscal.inf.br/nfe") + protected DetEvento.GCredPres.GIBS gibs; + @XmlElement(name = "gCBS", namespace = "http://www.portalfiscal.inf.br/nfe") + protected DetEvento.GCredPres.GCBS gcbs; + @XmlAttribute(name = "nItem", required = true) + protected String nItem; + + /** + * Obtém o valor da propriedade vbc. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVBC() { + return vbc; + } + + /** + * Define o valor da propriedade vbc. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVBC(String value) { + this.vbc = value; + } + + /** + * Obtém o valor da propriedade gibs. + * + * @return + * possible object is + * {@link DetEvento.GCredPres.GIBS } + * + */ + public DetEvento.GCredPres.GIBS getGIBS() { + return gibs; + } + + /** + * Define o valor da propriedade gibs. + * + * @param value + * allowed object is + * {@link DetEvento.GCredPres.GIBS } + * + */ + public void setGIBS(DetEvento.GCredPres.GIBS value) { + this.gibs = value; + } + + /** + * Obtém o valor da propriedade gcbs. + * + * @return + * possible object is + * {@link DetEvento.GCredPres.GCBS } + * + */ + public DetEvento.GCredPres.GCBS getGCBS() { + return gcbs; + } + + /** + * Define o valor da propriedade gcbs. + * + * @param value + * allowed object is + * {@link DetEvento.GCredPres.GCBS } + * + */ + public void setGCBS(DetEvento.GCredPres.GCBS value) { + this.gcbs = value; + } + + /** + * Obtém o valor da propriedade nItem. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNItem() { + return nItem; + } + + /** + * Define o valor da propriedade nItem. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNItem(String value) { + this.nItem = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <element name="cCredPres">
+         *           <simpleType>
+         *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+         *               <whiteSpace value="preserve"/>
+         *               <pattern value="[0-9]{2}"/>
+         *             </restriction>
+         *           </simpleType>
+         *         </element>
+         *         <element name="pCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/>
+         *         <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/>
+         *       </sequence>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "cCredPres", + "pCredPres", + "vCredPres" + }) + public static class GCBS { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cCredPres; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String pCredPres; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vCredPres; + + /** + * Obtém o valor da propriedade cCredPres. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCCredPres() { + return cCredPres; + } + + /** + * Define o valor da propriedade cCredPres. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCCredPres(String value) { + this.cCredPres = value; + } + + /** + * Obtém o valor da propriedade pCredPres. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPCredPres() { + return pCredPres; + } + + /** + * Define o valor da propriedade pCredPres. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPCredPres(String value) { + this.pCredPres = value; + } + + /** + * Obtém o valor da propriedade vCredPres. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCredPres() { + return vCredPres; + } + + /** + * Define o valor da propriedade vCredPres. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCredPres(String value) { + this.vCredPres = value; + } + + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <element name="cCredPres">
+         *           <simpleType>
+         *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+         *               <whiteSpace value="preserve"/>
+         *               <pattern value="[0-9]{2}"/>
+         *             </restriction>
+         *           </simpleType>
+         *         </element>
+         *         <element name="pCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec_0302_04"/>
+         *         <element name="vCredPres" type="{http://www.portalfiscal.inf.br/nfe}TDec1302"/>
+         *       </sequence>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "cCredPres", + "pCredPres", + "vCredPres" + }) + public static class GIBS { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cCredPres; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String pCredPres; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vCredPres; + + /** + * Obtém o valor da propriedade cCredPres. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCCredPres() { + return cCredPres; + } + + /** + * Define o valor da propriedade cCredPres. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCCredPres(String value) { + this.cCredPres = value; + } + + /** + * Obtém o valor da propriedade pCredPres. + * + * @return + * possible object is + * {@link String } + * + */ + public String getPCredPres() { + return pCredPres; + } + + /** + * Define o valor da propriedade pCredPres. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setPCredPres(String value) { + this.pCredPres = value; + } + + /** + * Obtém o valor da propriedade vCredPres. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCredPres() { + return vCredPres; + } + + /** + * Define o valor da propriedade vCredPres. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCredPres(String value) { + this.vCredPres = value; + } + + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/ObjectFactory.java new file mode 100644 index 00000000..b4f7c987 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/ObjectFactory.java @@ -0,0 +1,64 @@ + +package br.com.swconsultoria.nfe.schema.evento211110; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento211110 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento211110 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + + /** + * Create an instance of {@link DetEvento.GCredPres } + * + */ + public DetEvento.GCredPres createDetEventoGCredPres() { + return new DetEvento.GCredPres(); + } + + /** + * Create an instance of {@link DetEvento.GCredPres.GIBS } + * + */ + public DetEvento.GCredPres.GIBS createDetEventoGCredPresGIBS() { + return new DetEvento.GCredPres.GIBS(); + } + + /** + * Create an instance of {@link DetEvento.GCredPres.GCBS } + * + */ + public DetEvento.GCredPres.GCBS createDetEventoGCredPresGCBS() { + return new DetEvento.GCredPres.GCBS(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/TUf.java new file mode 100644 index 00000000..fd0bfefa --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento211110; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/TUfEmi.java new file mode 100644 index 00000000..1596e8a0 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211110/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento211110; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/DetEvento.java new file mode 100644 index 00000000..d5c362f7 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/DetEvento.java @@ -0,0 +1,637 @@ + +package br.com.swconsultoria.nfe.schema.evento211120; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Destinação de item para consumo pessoal"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="1"/>
+ *               <enumeration value="2"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="gConsumo" maxOccurs="990">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="gControleEstoque">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <element name="qConsumo" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+ *                             <element name="uConsumo">
+ *                               <simpleType>
+ *                                 <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *                                   <maxLength value="6"/>
+ *                                   <minLength value="1"/>
+ *                                 </restriction>
+ *                               </simpleType>
+ *                             </element>
+ *                           </sequence>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                   <element name="DFeReferenciado">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <element name="chaveAcesso" type="{http://www.portalfiscal.inf.br/nfe}TChNFe"/>
+ *                             <element name="nItem" type="{http://www.portalfiscal.inf.br/nfe}TnItem"/>
+ *                           </sequence>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                 </sequence>
+ *                 <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "gConsumo" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected List gConsumo; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Gets the value of the gConsumo property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gConsumo property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGConsumo().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link DetEvento.GConsumo } + * + * + */ + public List getGConsumo() { + if (gConsumo == null) { + gConsumo = new ArrayList(); + } + return this.gConsumo; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="gControleEstoque">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <element name="qConsumo" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+     *                   <element name="uConsumo">
+     *                     <simpleType>
+     *                       <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+     *                         <maxLength value="6"/>
+     *                         <minLength value="1"/>
+     *                       </restriction>
+     *                     </simpleType>
+     *                   </element>
+     *                 </sequence>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *         <element name="DFeReferenciado">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <element name="chaveAcesso" type="{http://www.portalfiscal.inf.br/nfe}TChNFe"/>
+     *                   <element name="nItem" type="{http://www.portalfiscal.inf.br/nfe}TnItem"/>
+     *                 </sequence>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *       </sequence>
+     *       <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibs", + "vcbs", + "gControleEstoque", + "dFeReferenciado" + }) + public static class GConsumo { + + @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibs; + @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected DetEvento.GConsumo.GControleEstoque gControleEstoque; + @XmlElement(name = "DFeReferenciado", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected DetEvento.GConsumo.DFeReferenciado dFeReferenciado; + @XmlAttribute(name = "nItem", required = true) + protected String nItem; + + /** + * Obtém o valor da propriedade vibs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBS() { + return vibs; + } + + /** + * Define o valor da propriedade vibs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBS(String value) { + this.vibs = value; + } + + /** + * Obtém o valor da propriedade vcbs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBS() { + return vcbs; + } + + /** + * Define o valor da propriedade vcbs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBS(String value) { + this.vcbs = value; + } + + /** + * Obtém o valor da propriedade gControleEstoque. + * + * @return + * possible object is + * {@link DetEvento.GConsumo.GControleEstoque } + * + */ + public DetEvento.GConsumo.GControleEstoque getGControleEstoque() { + return gControleEstoque; + } + + /** + * Define o valor da propriedade gControleEstoque. + * + * @param value + * allowed object is + * {@link DetEvento.GConsumo.GControleEstoque } + * + */ + public void setGControleEstoque(DetEvento.GConsumo.GControleEstoque value) { + this.gControleEstoque = value; + } + + /** + * Obtém o valor da propriedade dFeReferenciado. + * + * @return + * possible object is + * {@link DetEvento.GConsumo.DFeReferenciado } + * + */ + public DetEvento.GConsumo.DFeReferenciado getDFeReferenciado() { + return dFeReferenciado; + } + + /** + * Define o valor da propriedade dFeReferenciado. + * + * @param value + * allowed object is + * {@link DetEvento.GConsumo.DFeReferenciado } + * + */ + public void setDFeReferenciado(DetEvento.GConsumo.DFeReferenciado value) { + this.dFeReferenciado = value; + } + + /** + * Obtém o valor da propriedade nItem. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNItem() { + return nItem; + } + + /** + * Define o valor da propriedade nItem. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNItem(String value) { + this.nItem = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <element name="chaveAcesso" type="{http://www.portalfiscal.inf.br/nfe}TChNFe"/>
+         *         <element name="nItem" type="{http://www.portalfiscal.inf.br/nfe}TnItem"/>
+         *       </sequence>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "chaveAcesso", + "nItem" + }) + public static class DFeReferenciado { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String chaveAcesso; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String nItem; + + /** + * Obtém o valor da propriedade chaveAcesso. + * + * @return + * possible object is + * {@link String } + * + */ + public String getChaveAcesso() { + return chaveAcesso; + } + + /** + * Define o valor da propriedade chaveAcesso. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setChaveAcesso(String value) { + this.chaveAcesso = value; + } + + /** + * Obtém o valor da propriedade nItem. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNItem() { + return nItem; + } + + /** + * Define o valor da propriedade nItem. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNItem(String value) { + this.nItem = value; + } + + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <element name="qConsumo" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+         *         <element name="uConsumo">
+         *           <simpleType>
+         *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+         *               <maxLength value="6"/>
+         *               <minLength value="1"/>
+         *             </restriction>
+         *           </simpleType>
+         *         </element>
+         *       </sequence>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "qConsumo", + "uConsumo" + }) + public static class GControleEstoque { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String qConsumo; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String uConsumo; + + /** + * Obtém o valor da propriedade qConsumo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getQConsumo() { + return qConsumo; + } + + /** + * Define o valor da propriedade qConsumo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setQConsumo(String value) { + this.qConsumo = value; + } + + /** + * Obtém o valor da propriedade uConsumo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUConsumo() { + return uConsumo; + } + + /** + * Define o valor da propriedade uConsumo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUConsumo(String value) { + this.uConsumo = value; + } + + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/ObjectFactory.java new file mode 100644 index 00000000..c0262684 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/ObjectFactory.java @@ -0,0 +1,64 @@ + +package br.com.swconsultoria.nfe.schema.evento211120; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento211120 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento211120 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + + /** + * Create an instance of {@link DetEvento.GConsumo } + * + */ + public DetEvento.GConsumo createDetEventoGConsumo() { + return new DetEvento.GConsumo(); + } + + /** + * Create an instance of {@link DetEvento.GConsumo.GControleEstoque } + * + */ + public DetEvento.GConsumo.GControleEstoque createDetEventoGConsumoGControleEstoque() { + return new DetEvento.GConsumo.GControleEstoque(); + } + + /** + * Create an instance of {@link DetEvento.GConsumo.DFeReferenciado } + * + */ + public DetEvento.GConsumo.DFeReferenciado createDetEventoGConsumoDFeReferenciado() { + return new DetEvento.GConsumo.DFeReferenciado(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/TUf.java new file mode 100644 index 00000000..9b6a6746 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento211120; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/TUfEmi.java new file mode 100644 index 00000000..d48b5a30 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211120/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento211120; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/DetEvento.java new file mode 100644 index 00000000..e69a8cb4 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/DetEvento.java @@ -0,0 +1,502 @@ + +package br.com.swconsultoria.nfe.schema.evento211124; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Perecimento, perda, roubo ou furto durante o transporte contratado pelo adquirente"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="2"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="gPerecimento" maxOccurs="990">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="gControleEstoque">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <element name="qPerecimento" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+ *                             <element name="uPerecimento">
+ *                               <simpleType>
+ *                                 <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *                                   <maxLength value="6"/>
+ *                                   <minLength value="1"/>
+ *                                 </restriction>
+ *                               </simpleType>
+ *                             </element>
+ *                           </sequence>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                 </sequence>
+ *                 <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "gPerecimento" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected List gPerecimento; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Gets the value of the gPerecimento property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gPerecimento property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGPerecimento().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link DetEvento.GPerecimento } + * + * + */ + public List getGPerecimento() { + if (gPerecimento == null) { + gPerecimento = new ArrayList(); + } + return this.gPerecimento; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="gControleEstoque">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <element name="qPerecimento" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+     *                   <element name="uPerecimento">
+     *                     <simpleType>
+     *                       <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+     *                         <maxLength value="6"/>
+     *                         <minLength value="1"/>
+     *                       </restriction>
+     *                     </simpleType>
+     *                   </element>
+     *                 </sequence>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *       </sequence>
+     *       <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibs", + "vcbs", + "gControleEstoque" + }) + public static class GPerecimento { + + @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibs; + @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected DetEvento.GPerecimento.GControleEstoque gControleEstoque; + @XmlAttribute(name = "nItem", required = true) + protected String nItem; + + /** + * Obtém o valor da propriedade vibs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBS() { + return vibs; + } + + /** + * Define o valor da propriedade vibs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBS(String value) { + this.vibs = value; + } + + /** + * Obtém o valor da propriedade vcbs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBS() { + return vcbs; + } + + /** + * Define o valor da propriedade vcbs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBS(String value) { + this.vcbs = value; + } + + /** + * Obtém o valor da propriedade gControleEstoque. + * + * @return + * possible object is + * {@link DetEvento.GPerecimento.GControleEstoque } + * + */ + public DetEvento.GPerecimento.GControleEstoque getGControleEstoque() { + return gControleEstoque; + } + + /** + * Define o valor da propriedade gControleEstoque. + * + * @param value + * allowed object is + * {@link DetEvento.GPerecimento.GControleEstoque } + * + */ + public void setGControleEstoque(DetEvento.GPerecimento.GControleEstoque value) { + this.gControleEstoque = value; + } + + /** + * Obtém o valor da propriedade nItem. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNItem() { + return nItem; + } + + /** + * Define o valor da propriedade nItem. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNItem(String value) { + this.nItem = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <element name="qPerecimento" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+         *         <element name="uPerecimento">
+         *           <simpleType>
+         *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+         *               <maxLength value="6"/>
+         *               <minLength value="1"/>
+         *             </restriction>
+         *           </simpleType>
+         *         </element>
+         *       </sequence>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "qPerecimento", + "uPerecimento" + }) + public static class GControleEstoque { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String qPerecimento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String uPerecimento; + + /** + * Obtém o valor da propriedade qPerecimento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getQPerecimento() { + return qPerecimento; + } + + /** + * Define o valor da propriedade qPerecimento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setQPerecimento(String value) { + this.qPerecimento = value; + } + + /** + * Obtém o valor da propriedade uPerecimento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUPerecimento() { + return uPerecimento; + } + + /** + * Define o valor da propriedade uPerecimento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUPerecimento(String value) { + this.uPerecimento = value; + } + + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/ObjectFactory.java new file mode 100644 index 00000000..e8a4ba03 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/ObjectFactory.java @@ -0,0 +1,56 @@ + +package br.com.swconsultoria.nfe.schema.evento211124; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento211124 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento211124 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + + /** + * Create an instance of {@link DetEvento.GPerecimento } + * + */ + public DetEvento.GPerecimento createDetEventoGPerecimento() { + return new DetEvento.GPerecimento(); + } + + /** + * Create an instance of {@link DetEvento.GPerecimento.GControleEstoque } + * + */ + public DetEvento.GPerecimento.GControleEstoque createDetEventoGPerecimentoGControleEstoque() { + return new DetEvento.GPerecimento.GControleEstoque(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/TUf.java new file mode 100644 index 00000000..16c3338e --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento211124; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/TUfEmi.java new file mode 100644 index 00000000..57f07e01 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211124/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento211124; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/DetEvento.java new file mode 100644 index 00000000..0d26b9f8 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/DetEvento.java @@ -0,0 +1,225 @@ + +package br.com.swconsultoria.nfe.schema.evento211128; + +import javax.xml.bind.annotation.*; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Aceite de débito na apuração por emissão de nota de crédito"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="2"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="indAceitacao">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="0"/>
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "indAceitacao" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String indAceitacao; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Obtém o valor da propriedade indAceitacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndAceitacao() { + return indAceitacao; + } + + /** + * Define o valor da propriedade indAceitacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndAceitacao(String value) { + this.indAceitacao = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/ObjectFactory.java new file mode 100644 index 00000000..da5b9b97 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/ObjectFactory.java @@ -0,0 +1,40 @@ + +package br.com.swconsultoria.nfe.schema.evento211128; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento211128 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento211128 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/TUf.java new file mode 100644 index 00000000..a3ad5b99 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento211128; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/TUfEmi.java new file mode 100644 index 00000000..c85b9efb --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211128/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento211128; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/DetEvento.java new file mode 100644 index 00000000..e088db80 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/DetEvento.java @@ -0,0 +1,502 @@ + +package br.com.swconsultoria.nfe.schema.evento211130; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Imobilização de Item"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="2"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="gImobilizacao" maxOccurs="990">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="gControleEstoque">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <element name="qImobilizado" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+ *                             <element name="uImobilizado">
+ *                               <simpleType>
+ *                                 <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *                                   <maxLength value="6"/>
+ *                                   <minLength value="1"/>
+ *                                 </restriction>
+ *                               </simpleType>
+ *                             </element>
+ *                           </sequence>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                 </sequence>
+ *                 <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "gImobilizacao" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected List gImobilizacao; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Gets the value of the gImobilizacao property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gImobilizacao property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGImobilizacao().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link DetEvento.GImobilizacao } + * + * + */ + public List getGImobilizacao() { + if (gImobilizacao == null) { + gImobilizacao = new ArrayList(); + } + return this.gImobilizacao; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="gControleEstoque">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <element name="qImobilizado" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+     *                   <element name="uImobilizado">
+     *                     <simpleType>
+     *                       <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+     *                         <maxLength value="6"/>
+     *                         <minLength value="1"/>
+     *                       </restriction>
+     *                     </simpleType>
+     *                   </element>
+     *                 </sequence>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *       </sequence>
+     *       <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibs", + "vcbs", + "gControleEstoque" + }) + public static class GImobilizacao { + + @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibs; + @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected DetEvento.GImobilizacao.GControleEstoque gControleEstoque; + @XmlAttribute(name = "nItem", required = true) + protected String nItem; + + /** + * Obtém o valor da propriedade vibs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBS() { + return vibs; + } + + /** + * Define o valor da propriedade vibs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBS(String value) { + this.vibs = value; + } + + /** + * Obtém o valor da propriedade vcbs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBS() { + return vcbs; + } + + /** + * Define o valor da propriedade vcbs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBS(String value) { + this.vcbs = value; + } + + /** + * Obtém o valor da propriedade gControleEstoque. + * + * @return + * possible object is + * {@link DetEvento.GImobilizacao.GControleEstoque } + * + */ + public DetEvento.GImobilizacao.GControleEstoque getGControleEstoque() { + return gControleEstoque; + } + + /** + * Define o valor da propriedade gControleEstoque. + * + * @param value + * allowed object is + * {@link DetEvento.GImobilizacao.GControleEstoque } + * + */ + public void setGControleEstoque(DetEvento.GImobilizacao.GControleEstoque value) { + this.gControleEstoque = value; + } + + /** + * Obtém o valor da propriedade nItem. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNItem() { + return nItem; + } + + /** + * Define o valor da propriedade nItem. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNItem(String value) { + this.nItem = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <element name="qImobilizado" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+         *         <element name="uImobilizado">
+         *           <simpleType>
+         *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+         *               <maxLength value="6"/>
+         *               <minLength value="1"/>
+         *             </restriction>
+         *           </simpleType>
+         *         </element>
+         *       </sequence>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "qImobilizado", + "uImobilizado" + }) + public static class GControleEstoque { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String qImobilizado; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String uImobilizado; + + /** + * Obtém o valor da propriedade qImobilizado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getQImobilizado() { + return qImobilizado; + } + + /** + * Define o valor da propriedade qImobilizado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setQImobilizado(String value) { + this.qImobilizado = value; + } + + /** + * Obtém o valor da propriedade uImobilizado. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUImobilizado() { + return uImobilizado; + } + + /** + * Define o valor da propriedade uImobilizado. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUImobilizado(String value) { + this.uImobilizado = value; + } + + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/ObjectFactory.java new file mode 100644 index 00000000..015de108 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/ObjectFactory.java @@ -0,0 +1,56 @@ + +package br.com.swconsultoria.nfe.schema.evento211130; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento211130 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento211130 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + + /** + * Create an instance of {@link DetEvento.GImobilizacao } + * + */ + public DetEvento.GImobilizacao createDetEventoGImobilizacao() { + return new DetEvento.GImobilizacao(); + } + + /** + * Create an instance of {@link DetEvento.GImobilizacao.GControleEstoque } + * + */ + public DetEvento.GImobilizacao.GControleEstoque createDetEventoGImobilizacaoGControleEstoque() { + return new DetEvento.GImobilizacao.GControleEstoque(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/TUf.java new file mode 100644 index 00000000..056dad94 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento211130; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/TUfEmi.java new file mode 100644 index 00000000..e7e264bb --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211130/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento211130; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/DetEvento.java new file mode 100644 index 00000000..775beacd --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/DetEvento.java @@ -0,0 +1,502 @@ + +package br.com.swconsultoria.nfe.schema.evento211140; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Solicitação de Apropriação de Crédito de Combustível"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="2"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="gConsumoComb" maxOccurs="990">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="gControleEstoque">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <element name="qComb" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+ *                             <element name="uComb">
+ *                               <simpleType>
+ *                                 <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *                                   <maxLength value="6"/>
+ *                                   <minLength value="1"/>
+ *                                 </restriction>
+ *                               </simpleType>
+ *                             </element>
+ *                           </sequence>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                 </sequence>
+ *                 <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "gConsumoComb" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected List gConsumoComb; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Gets the value of the gConsumoComb property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gConsumoComb property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGConsumoComb().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link DetEvento.GConsumoComb } + * + * + */ + public List getGConsumoComb() { + if (gConsumoComb == null) { + gConsumoComb = new ArrayList(); + } + return this.gConsumoComb; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="vCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="gControleEstoque">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <element name="qComb" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+     *                   <element name="uComb">
+     *                     <simpleType>
+     *                       <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+     *                         <maxLength value="6"/>
+     *                         <minLength value="1"/>
+     *                       </restriction>
+     *                     </simpleType>
+     *                   </element>
+     *                 </sequence>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *       </sequence>
+     *       <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vibs", + "vcbs", + "gControleEstoque" + }) + public static class GConsumoComb { + + @XmlElement(name = "vIBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vibs; + @XmlElement(name = "vCBS", namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vcbs; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected DetEvento.GConsumoComb.GControleEstoque gControleEstoque; + @XmlAttribute(name = "nItem", required = true) + protected String nItem; + + /** + * Obtém o valor da propriedade vibs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVIBS() { + return vibs; + } + + /** + * Define o valor da propriedade vibs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVIBS(String value) { + this.vibs = value; + } + + /** + * Obtém o valor da propriedade vcbs. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCBS() { + return vcbs; + } + + /** + * Define o valor da propriedade vcbs. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCBS(String value) { + this.vcbs = value; + } + + /** + * Obtém o valor da propriedade gControleEstoque. + * + * @return + * possible object is + * {@link DetEvento.GConsumoComb.GControleEstoque } + * + */ + public DetEvento.GConsumoComb.GControleEstoque getGControleEstoque() { + return gControleEstoque; + } + + /** + * Define o valor da propriedade gControleEstoque. + * + * @param value + * allowed object is + * {@link DetEvento.GConsumoComb.GControleEstoque } + * + */ + public void setGControleEstoque(DetEvento.GConsumoComb.GControleEstoque value) { + this.gControleEstoque = value; + } + + /** + * Obtém o valor da propriedade nItem. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNItem() { + return nItem; + } + + /** + * Define o valor da propriedade nItem. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNItem(String value) { + this.nItem = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <element name="qComb" type="{http://www.portalfiscal.inf.br/nfe}TDec_1104"/>
+         *         <element name="uComb">
+         *           <simpleType>
+         *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+         *               <maxLength value="6"/>
+         *               <minLength value="1"/>
+         *             </restriction>
+         *           </simpleType>
+         *         </element>
+         *       </sequence>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "qComb", + "uComb" + }) + public static class GControleEstoque { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String qComb; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String uComb; + + /** + * Obtém o valor da propriedade qComb. + * + * @return + * possible object is + * {@link String } + * + */ + public String getQComb() { + return qComb; + } + + /** + * Define o valor da propriedade qComb. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setQComb(String value) { + this.qComb = value; + } + + /** + * Obtém o valor da propriedade uComb. + * + * @return + * possible object is + * {@link String } + * + */ + public String getUComb() { + return uComb; + } + + /** + * Define o valor da propriedade uComb. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setUComb(String value) { + this.uComb = value; + } + + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/ObjectFactory.java new file mode 100644 index 00000000..93fd2a15 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/ObjectFactory.java @@ -0,0 +1,56 @@ + +package br.com.swconsultoria.nfe.schema.evento211140; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento211140 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento211140 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + + /** + * Create an instance of {@link DetEvento.GConsumoComb } + * + */ + public DetEvento.GConsumoComb createDetEventoGConsumoComb() { + return new DetEvento.GConsumoComb(); + } + + /** + * Create an instance of {@link DetEvento.GConsumoComb.GControleEstoque } + * + */ + public DetEvento.GConsumoComb.GControleEstoque createDetEventoGConsumoCombGControleEstoque() { + return new DetEvento.GConsumoComb.GControleEstoque(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/TUf.java new file mode 100644 index 00000000..e36d60d1 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento211140; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/TUfEmi.java new file mode 100644 index 00000000..be28e8a0 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211140/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento211140; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/DetEvento.java new file mode 100644 index 00000000..a378eb85 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/DetEvento.java @@ -0,0 +1,347 @@ + +package br.com.swconsultoria.nfe.schema.evento211150; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Solicitação de Apropriação de Crédito para bens e serviços que dependem de atividade do adquirente"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="2"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="gCredito" maxOccurs="990">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="vCredIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                   <element name="vCredCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+ *                 </sequence>
+ *                 <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "gCredito" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected List gCredito; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Gets the value of the gCredito property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the gCredito property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getGCredito().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link DetEvento.GCredito } + * + * + */ + public List getGCredito() { + if (gCredito == null) { + gCredito = new ArrayList(); + } + return this.gCredito; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="vCredIBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *         <element name="vCredCBS" type="{http://www.portalfiscal.inf.br/nfe}TDec_1302"/>
+     *       </sequence>
+     *       <attribute name="nItem" use="required" type="{http://www.portalfiscal.inf.br/nfe}TnItem" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "vCredIBS", + "vCredCBS" + }) + public static class GCredito { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vCredIBS; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String vCredCBS; + @XmlAttribute(name = "nItem", required = true) + protected String nItem; + + /** + * Obtém o valor da propriedade vCredIBS. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCredIBS() { + return vCredIBS; + } + + /** + * Define o valor da propriedade vCredIBS. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCredIBS(String value) { + this.vCredIBS = value; + } + + /** + * Obtém o valor da propriedade vCredCBS. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVCredCBS() { + return vCredCBS; + } + + /** + * Define o valor da propriedade vCredCBS. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVCredCBS(String value) { + this.vCredCBS = value; + } + + /** + * Obtém o valor da propriedade nItem. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNItem() { + return nItem; + } + + /** + * Define o valor da propriedade nItem. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNItem(String value) { + this.nItem = value; + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/ObjectFactory.java new file mode 100644 index 00000000..4f98227b --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/ObjectFactory.java @@ -0,0 +1,48 @@ + +package br.com.swconsultoria.nfe.schema.evento211150; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento211150 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento211150 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + + /** + * Create an instance of {@link DetEvento.GCredito } + * + */ + public DetEvento.GCredito createDetEventoGCredito() { + return new DetEvento.GCredito(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/TUf.java new file mode 100644 index 00000000..cf934bc6 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento211150; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/TUfEmi.java new file mode 100644 index 00000000..2d585699 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento211150/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento211150; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/DetEvento.java new file mode 100644 index 00000000..ac28e2be --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/DetEvento.java @@ -0,0 +1,225 @@ + +package br.com.swconsultoria.nfe.schema.evento212110; + +import javax.xml.bind.annotation.*; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Manifestação sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="8"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="indAceitacao">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="0"/>
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "indAceitacao" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String indAceitacao; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Obtém o valor da propriedade indAceitacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndAceitacao() { + return indAceitacao; + } + + /** + * Define o valor da propriedade indAceitacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndAceitacao(String value) { + this.indAceitacao = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/ObjectFactory.java new file mode 100644 index 00000000..05aaf21b --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/ObjectFactory.java @@ -0,0 +1,40 @@ + +package br.com.swconsultoria.nfe.schema.evento212110; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento212110 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento212110 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/TUf.java new file mode 100644 index 00000000..0d48a16f --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento212110; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/TUfEmi.java new file mode 100644 index 00000000..f1316af4 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento212110/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento212110; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/DetEvento.java new file mode 100644 index 00000000..d704e7a7 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/DetEvento.java @@ -0,0 +1,225 @@ + +package br.com.swconsultoria.nfe.schema.evento212120; + +import javax.xml.bind.annotation.*; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Manifestação sobre Pedido de Transferência de Crédito de CBS em Operação de Sucessão"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="8"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="indAceitacao">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="0"/>
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "indAceitacao" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String indAceitacao; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Obtém o valor da propriedade indAceitacao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndAceitacao() { + return indAceitacao; + } + + /** + * Define o valor da propriedade indAceitacao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndAceitacao(String value) { + this.indAceitacao = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/ObjectFactory.java new file mode 100644 index 00000000..40fb68f5 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/ObjectFactory.java @@ -0,0 +1,40 @@ + +package br.com.swconsultoria.nfe.schema.evento212120; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento212120 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento212120 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/TUf.java new file mode 100644 index 00000000..f8cf1d18 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento212120; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/TUfEmi.java new file mode 100644 index 00000000..546ccf46 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento212120/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento212120; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/DetEvento.java new file mode 100644 index 00000000..62d884ba --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/DetEvento.java @@ -0,0 +1,295 @@ + +package br.com.swconsultoria.nfe.schema.evento412120; + +import javax.xml.bind.annotation.*; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Manifestação do Fisco sobre Pedido de Transferência de Crédito de IBS em Operação de Sucessão"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="5"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="indDeferimento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="0"/>
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cMotivo">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="1"/>
+ *               <enumeration value="2"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="xMotivo">
+ *           <simpleType>
+ *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *               <minLength value="1"/>
+ *               <maxLength value="500"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "indDeferimento", + "cMotivo", + "xMotivo" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String indDeferimento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cMotivo; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String xMotivo; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Obtém o valor da propriedade indDeferimento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDeferimento() { + return indDeferimento; + } + + /** + * Define o valor da propriedade indDeferimento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDeferimento(String value) { + this.indDeferimento = value; + } + + /** + * Obtém o valor da propriedade cMotivo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCMotivo() { + return cMotivo; + } + + /** + * Define o valor da propriedade cMotivo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCMotivo(String value) { + this.cMotivo = value; + } + + /** + * Obtém o valor da propriedade xMotivo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getXMotivo() { + return xMotivo; + } + + /** + * Define o valor da propriedade xMotivo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setXMotivo(String value) { + this.xMotivo = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/ObjectFactory.java new file mode 100644 index 00000000..f1b78044 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/ObjectFactory.java @@ -0,0 +1,40 @@ + +package br.com.swconsultoria.nfe.schema.evento412120; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento412120 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento412120 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/TUf.java new file mode 100644 index 00000000..9cff1c45 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento412120; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/TUfEmi.java new file mode 100644 index 00000000..e7670b7d --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento412120/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento412120; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/DetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/DetEvento.java new file mode 100644 index 00000000..e6ddc7b5 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/DetEvento.java @@ -0,0 +1,295 @@ + +package br.com.swconsultoria.nfe.schema.evento412130; + +import javax.xml.bind.annotation.*; + + +/** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="descEvento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="Manifestação do Fisco sobre Pedido de Transferência de Crédito de CBS em Operação de Sucessão"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCodUfIBGE"/>
+ *         <element name="tpAutor">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="5"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="indDeferimento">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="0"/>
+ *               <enumeration value="1"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="cMotivo">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <enumeration value="1"/>
+ *               <enumeration value="2"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="xMotivo">
+ *           <simpleType>
+ *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *               <minLength value="1"/>
+ *               <maxLength value="500"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *       </sequence>
+ *       <attribute name="versao">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *             <whiteSpace value="preserve"/>
+ *             <enumeration value="1.00"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "descEvento", + "cOrgaoAutor", + "tpAutor", + "verAplic", + "indDeferimento", + "cMotivo", + "xMotivo" +}) +@XmlRootElement(name = "detEvento", namespace = "http://www.portalfiscal.inf.br/nfe") +public class DetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String descEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgaoAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAutor; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String indDeferimento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cMotivo; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String xMotivo; + @XmlAttribute(name = "versao") + protected String versao; + + /** + * Obtém o valor da propriedade descEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDescEvento() { + return descEvento; + } + + /** + * Define o valor da propriedade descEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDescEvento(String value) { + this.descEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade tpAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAutor() { + return tpAutor; + } + + /** + * Define o valor da propriedade tpAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAutor(String value) { + this.tpAutor = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Obtém o valor da propriedade indDeferimento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIndDeferimento() { + return indDeferimento; + } + + /** + * Define o valor da propriedade indDeferimento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIndDeferimento(String value) { + this.indDeferimento = value; + } + + /** + * Obtém o valor da propriedade cMotivo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCMotivo() { + return cMotivo; + } + + /** + * Define o valor da propriedade cMotivo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCMotivo(String value) { + this.cMotivo = value; + } + + /** + * Obtém o valor da propriedade xMotivo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getXMotivo() { + return xMotivo; + } + + /** + * Define o valor da propriedade xMotivo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setXMotivo(String value) { + this.xMotivo = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/ObjectFactory.java new file mode 100644 index 00000000..47649b16 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/ObjectFactory.java @@ -0,0 +1,40 @@ + +package br.com.swconsultoria.nfe.schema.evento412130; + +import javax.xml.bind.annotation.XmlRegistry; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.evento412130 package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.evento412130 + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link DetEvento } + * + */ + public DetEvento createDetEvento() { + return new DetEvento(); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/TUf.java new file mode 100644 index 00000000..650bdbb4 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.evento412130; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/TUfEmi.java new file mode 100644 index 00000000..87a37b0f --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/evento412130/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.evento412130; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/KeyInfoType.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/KeyInfoType.java new file mode 100644 index 00000000..6706757a --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/KeyInfoType.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.*; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

Classe Java de KeyInfoType complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="KeyInfoType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="X509Data" type="{http://www.w3.org/2000/09/xmldsig#}X509DataType"/>
+ *       </sequence>
+ *       <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "KeyInfoType", namespace = "http://www.w3.org/2000/09/xmldsig#", propOrder = { + "x509Data" +}) +public class KeyInfoType { + + @XmlElement(name = "X509Data", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected X509DataType x509Data; + @XmlAttribute(name = "Id") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + + /** + * Obtém o valor da propriedade x509Data. + * + * @return + * possible object is + * {@link X509DataType } + * + */ + public X509DataType getX509Data() { + return x509Data; + } + + /** + * Define o valor da propriedade x509Data. + * + * @param value + * allowed object is + * {@link X509DataType } + * + */ + public void setX509Data(X509DataType value) { + this.x509Data = value; + } + + /** + * Obtém o valor da propriedade id. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Define o valor da propriedade id. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/ObjectFactory.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/ObjectFactory.java new file mode 100644 index 00000000..8fac2f5d --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/ObjectFactory.java @@ -0,0 +1,207 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.JAXBElement; +import javax.xml.bind.annotation.XmlElementDecl; +import javax.xml.bind.annotation.XmlRegistry; +import javax.xml.namespace.QName; + + +/** + * This object contains factory methods for each + * Java content interface and Java element interface + * generated in the br.com.swconsultoria.nfe.schema.eventoGenerico package. + *

An ObjectFactory allows you to programatically + * construct new instances of the Java representation + * for XML content. The Java representation of XML + * content can consist of schema derived interfaces + * and classes representing the binding of schema + * type definitions, element declarations and model + * groups. Factory methods for each of these are + * provided in this class. + * + */ +@XmlRegistry +public class ObjectFactory { + + private final static QName _Signature_QNAME = new QName("http://www.w3.org/2000/09/xmldsig#", "Signature"); + private final static QName _EnvEvento_QNAME = new QName("http://www.portalfiscal.inf.br/nfe", "envEvento"); + + /** + * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: br.com.swconsultoria.nfe.schema.eventoGenerico + * + */ + public ObjectFactory() { + } + + /** + * Create an instance of {@link ReferenceType } + * + */ + public ReferenceType createReferenceType() { + return new ReferenceType(); + } + + /** + * Create an instance of {@link SignedInfoType } + * + */ + public SignedInfoType createSignedInfoType() { + return new SignedInfoType(); + } + + /** + * Create an instance of {@link TEvento } + * + */ + public TEvento createTEvento() { + return new TEvento(); + } + + /** + * Create an instance of {@link TEvento.InfEvento } + * + */ + public TEvento.InfEvento createTEventoInfEvento() { + return new TEvento.InfEvento(); + } + + /** + * Create an instance of {@link TRetEvento } + * + */ + public TRetEvento createTRetEvento() { + return new TRetEvento(); + } + + /** + * Create an instance of {@link TEnvEvento } + * + */ + public TEnvEvento createTEnvEvento() { + return new TEnvEvento(); + } + + /** + * Create an instance of {@link TRetEnvEvento } + * + */ + public TRetEnvEvento createTRetEnvEvento() { + return new TRetEnvEvento(); + } + + /** + * Create an instance of {@link TProcEvento } + * + */ + public TProcEvento createTProcEvento() { + return new TProcEvento(); + } + + /** + * Create an instance of {@link SignatureType } + * + */ + public SignatureType createSignatureType() { + return new SignatureType(); + } + + /** + * Create an instance of {@link X509DataType } + * + */ + public X509DataType createX509DataType() { + return new X509DataType(); + } + + /** + * Create an instance of {@link SignatureValueType } + * + */ + public SignatureValueType createSignatureValueType() { + return new SignatureValueType(); + } + + /** + * Create an instance of {@link TransformsType } + * + */ + public TransformsType createTransformsType() { + return new TransformsType(); + } + + /** + * Create an instance of {@link TransformType } + * + */ + public TransformType createTransformType() { + return new TransformType(); + } + + /** + * Create an instance of {@link KeyInfoType } + * + */ + public KeyInfoType createKeyInfoType() { + return new KeyInfoType(); + } + + /** + * Create an instance of {@link ReferenceType.DigestMethod } + * + */ + public ReferenceType.DigestMethod createReferenceTypeDigestMethod() { + return new ReferenceType.DigestMethod(); + } + + /** + * Create an instance of {@link SignedInfoType.CanonicalizationMethod } + * + */ + public SignedInfoType.CanonicalizationMethod createSignedInfoTypeCanonicalizationMethod() { + return new SignedInfoType.CanonicalizationMethod(); + } + + /** + * Create an instance of {@link SignedInfoType.SignatureMethod } + * + */ + public SignedInfoType.SignatureMethod createSignedInfoTypeSignatureMethod() { + return new SignedInfoType.SignatureMethod(); + } + + /** + * Create an instance of {@link TEvento.InfEvento.DetEvento } + * + */ + public TEvento.InfEvento.DetEvento createTEventoInfEventoDetEvento() { + return new TEvento.InfEvento.DetEvento(); + } + + /** + * Create an instance of {@link TRetEvento.InfEvento } + * + */ + public TRetEvento.InfEvento createTRetEventoInfEvento() { + return new TRetEvento.InfEvento(); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link SignatureType }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://www.w3.org/2000/09/xmldsig#", name = "Signature") + public JAXBElement createSignature(SignatureType value) { + return new JAXBElement(_Signature_QNAME, SignatureType.class, null, value); + } + + /** + * Create an instance of {@link JAXBElement }{@code <}{@link TEnvEvento }{@code >}} + * + */ + @XmlElementDecl(namespace = "http://www.portalfiscal.inf.br/nfe", name = "envEvento") + public JAXBElement createEnvEvento(TEnvEvento value) { + return new JAXBElement(_EnvEvento_QNAME, TEnvEvento.class, null, value); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/ReferenceType.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/ReferenceType.java new file mode 100644 index 00000000..70c3dc6d --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/ReferenceType.java @@ -0,0 +1,270 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.*; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

Classe Java de ReferenceType complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="ReferenceType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Transforms" type="{http://www.w3.org/2000/09/xmldsig#}TransformsType"/>
+ *         <element name="DigestMethod">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" fixed="http://www.w3.org/2000/09/xmldsig#sha1" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element name="DigestValue" type="{http://www.w3.org/2000/09/xmldsig#}DigestValueType"/>
+ *       </sequence>
+ *       <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ *       <attribute name="URI" use="required">
+ *         <simpleType>
+ *           <restriction base="{http://www.w3.org/2001/XMLSchema}anyURI">
+ *             <minLength value="2"/>
+ *           </restriction>
+ *         </simpleType>
+ *       </attribute>
+ *       <attribute name="Type" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "ReferenceType", namespace = "http://www.w3.org/2000/09/xmldsig#", propOrder = { + "transforms", + "digestMethod", + "digestValue" +}) +public class ReferenceType { + + @XmlElement(name = "Transforms", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected TransformsType transforms; + @XmlElement(name = "DigestMethod", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected ReferenceType.DigestMethod digestMethod; + @XmlElement(name = "DigestValue", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected byte[] digestValue; + @XmlAttribute(name = "Id") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + @XmlAttribute(name = "URI", required = true) + protected String uri; + @XmlAttribute(name = "Type") + @XmlSchemaType(name = "anyURI") + protected String type; + + /** + * Obtém o valor da propriedade transforms. + * + * @return + * possible object is + * {@link TransformsType } + * + */ + public TransformsType getTransforms() { + return transforms; + } + + /** + * Define o valor da propriedade transforms. + * + * @param value + * allowed object is + * {@link TransformsType } + * + */ + public void setTransforms(TransformsType value) { + this.transforms = value; + } + + /** + * Obtém o valor da propriedade digestMethod. + * + * @return + * possible object is + * {@link ReferenceType.DigestMethod } + * + */ + public ReferenceType.DigestMethod getDigestMethod() { + return digestMethod; + } + + /** + * Define o valor da propriedade digestMethod. + * + * @param value + * allowed object is + * {@link ReferenceType.DigestMethod } + * + */ + public void setDigestMethod(ReferenceType.DigestMethod value) { + this.digestMethod = value; + } + + /** + * Obtém o valor da propriedade digestValue. + * + * @return + * possible object is + * byte[] + */ + public byte[] getDigestValue() { + return digestValue; + } + + /** + * Define o valor da propriedade digestValue. + * + * @param value + * allowed object is + * byte[] + */ + public void setDigestValue(byte[] value) { + this.digestValue = value; + } + + /** + * Obtém o valor da propriedade id. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Define o valor da propriedade id. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + /** + * Obtém o valor da propriedade uri. + * + * @return + * possible object is + * {@link String } + * + */ + public String getURI() { + return uri; + } + + /** + * Define o valor da propriedade uri. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setURI(String value) { + this.uri = value; + } + + /** + * Obtém o valor da propriedade type. + * + * @return + * possible object is + * {@link String } + * + */ + public String getType() { + return type; + } + + /** + * Define o valor da propriedade type. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setType(String value) { + this.type = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" fixed="http://www.w3.org/2000/09/xmldsig#sha1" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class DigestMethod { + + @XmlAttribute(name = "Algorithm", required = true) + @XmlSchemaType(name = "anyURI") + protected String algorithm; + + /** + * Obtém o valor da propriedade algorithm. + * + * @return + * possible object is + * {@link String } + * + */ + public String getAlgorithm() { + if (algorithm == null) { + return "http://www.w3.org/2000/09/xmldsig#sha1"; + } else { + return algorithm; + } + } + + /** + * Define o valor da propriedade algorithm. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAlgorithm(String value) { + this.algorithm = value; + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignatureType.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignatureType.java new file mode 100644 index 00000000..0f2e5932 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignatureType.java @@ -0,0 +1,147 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.*; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

Classe Java de SignatureType complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="SignatureType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="SignedInfo" type="{http://www.w3.org/2000/09/xmldsig#}SignedInfoType"/>
+ *         <element name="SignatureValue" type="{http://www.w3.org/2000/09/xmldsig#}SignatureValueType"/>
+ *         <element name="KeyInfo" type="{http://www.w3.org/2000/09/xmldsig#}KeyInfoType"/>
+ *       </sequence>
+ *       <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "SignatureType", namespace = "http://www.w3.org/2000/09/xmldsig#", propOrder = { + "signedInfo", + "signatureValue", + "keyInfo" +}) +public class SignatureType { + + @XmlElement(name = "SignedInfo", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected SignedInfoType signedInfo; + @XmlElement(name = "SignatureValue", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected SignatureValueType signatureValue; + @XmlElement(name = "KeyInfo", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected KeyInfoType keyInfo; + @XmlAttribute(name = "Id") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + + /** + * Obtém o valor da propriedade signedInfo. + * + * @return + * possible object is + * {@link SignedInfoType } + * + */ + public SignedInfoType getSignedInfo() { + return signedInfo; + } + + /** + * Define o valor da propriedade signedInfo. + * + * @param value + * allowed object is + * {@link SignedInfoType } + * + */ + public void setSignedInfo(SignedInfoType value) { + this.signedInfo = value; + } + + /** + * Obtém o valor da propriedade signatureValue. + * + * @return + * possible object is + * {@link SignatureValueType } + * + */ + public SignatureValueType getSignatureValue() { + return signatureValue; + } + + /** + * Define o valor da propriedade signatureValue. + * + * @param value + * allowed object is + * {@link SignatureValueType } + * + */ + public void setSignatureValue(SignatureValueType value) { + this.signatureValue = value; + } + + /** + * Obtém o valor da propriedade keyInfo. + * + * @return + * possible object is + * {@link KeyInfoType } + * + */ + public KeyInfoType getKeyInfo() { + return keyInfo; + } + + /** + * Define o valor da propriedade keyInfo. + * + * @param value + * allowed object is + * {@link KeyInfoType } + * + */ + public void setKeyInfo(KeyInfoType value) { + this.keyInfo = value; + } + + /** + * Obtém o valor da propriedade id. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Define o valor da propriedade id. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignatureValueType.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignatureValueType.java new file mode 100644 index 00000000..835bfe2c --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignatureValueType.java @@ -0,0 +1,86 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.*; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

Classe Java de SignatureValueType complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="SignatureValueType">
+ *   <simpleContent>
+ *     <extension base="<http://www.w3.org/2001/XMLSchema>base64Binary">
+ *       <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ *     </extension>
+ *   </simpleContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "SignatureValueType", namespace = "http://www.w3.org/2000/09/xmldsig#", propOrder = { + "value" +}) +public class SignatureValueType { + + @XmlValue + protected byte[] value; + @XmlAttribute(name = "Id") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + + /** + * Obtém o valor da propriedade value. + * + * @return + * possible object is + * byte[] + */ + public byte[] getValue() { + return value; + } + + /** + * Define o valor da propriedade value. + * + * @param value + * allowed object is + * byte[] + */ + public void setValue(byte[] value) { + this.value = value; + } + + /** + * Obtém o valor da propriedade id. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Define o valor da propriedade id. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignedInfoType.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignedInfoType.java new file mode 100644 index 00000000..8fe7c9ef --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/SignedInfoType.java @@ -0,0 +1,275 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.*; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + *

Classe Java de SignedInfoType complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="SignedInfoType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CanonicalizationMethod">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" fixed="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element name="SignatureMethod">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" fixed="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element name="Reference" type="{http://www.w3.org/2000/09/xmldsig#}ReferenceType"/>
+ *       </sequence>
+ *       <attribute name="Id" type="{http://www.w3.org/2001/XMLSchema}ID" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "SignedInfoType", namespace = "http://www.w3.org/2000/09/xmldsig#", propOrder = { + "canonicalizationMethod", + "signatureMethod", + "reference" +}) +public class SignedInfoType { + + @XmlElement(name = "CanonicalizationMethod", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected SignedInfoType.CanonicalizationMethod canonicalizationMethod; + @XmlElement(name = "SignatureMethod", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected SignedInfoType.SignatureMethod signatureMethod; + @XmlElement(name = "Reference", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected ReferenceType reference; + @XmlAttribute(name = "Id") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + @XmlSchemaType(name = "ID") + protected String id; + + /** + * Obtém o valor da propriedade canonicalizationMethod. + * + * @return + * possible object is + * {@link SignedInfoType.CanonicalizationMethod } + * + */ + public SignedInfoType.CanonicalizationMethod getCanonicalizationMethod() { + return canonicalizationMethod; + } + + /** + * Define o valor da propriedade canonicalizationMethod. + * + * @param value + * allowed object is + * {@link SignedInfoType.CanonicalizationMethod } + * + */ + public void setCanonicalizationMethod(SignedInfoType.CanonicalizationMethod value) { + this.canonicalizationMethod = value; + } + + /** + * Obtém o valor da propriedade signatureMethod. + * + * @return + * possible object is + * {@link SignedInfoType.SignatureMethod } + * + */ + public SignedInfoType.SignatureMethod getSignatureMethod() { + return signatureMethod; + } + + /** + * Define o valor da propriedade signatureMethod. + * + * @param value + * allowed object is + * {@link SignedInfoType.SignatureMethod } + * + */ + public void setSignatureMethod(SignedInfoType.SignatureMethod value) { + this.signatureMethod = value; + } + + /** + * Obtém o valor da propriedade reference. + * + * @return + * possible object is + * {@link ReferenceType } + * + */ + public ReferenceType getReference() { + return reference; + } + + /** + * Define o valor da propriedade reference. + * + * @param value + * allowed object is + * {@link ReferenceType } + * + */ + public void setReference(ReferenceType value) { + this.reference = value; + } + + /** + * Obtém o valor da propriedade id. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Define o valor da propriedade id. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" fixed="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class CanonicalizationMethod { + + @XmlAttribute(name = "Algorithm", required = true) + @XmlSchemaType(name = "anyURI") + protected String algorithm; + + /** + * Obtém o valor da propriedade algorithm. + * + * @return + * possible object is + * {@link String } + * + */ + public String getAlgorithm() { + if (algorithm == null) { + return "http://www.w3.org/TR/2001/REC-xml-c14n-20010315"; + } else { + return algorithm; + } + } + + /** + * Define o valor da propriedade algorithm. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAlgorithm(String value) { + this.algorithm = value; + } + + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <attribute name="Algorithm" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" fixed="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "") + public static class SignatureMethod { + + @XmlAttribute(name = "Algorithm", required = true) + @XmlSchemaType(name = "anyURI") + protected String algorithm; + + /** + * Obtém o valor da propriedade algorithm. + * + * @return + * possible object is + * {@link String } + * + */ + public String getAlgorithm() { + if (algorithm == null) { + return "http://www.w3.org/2000/09/xmldsig#rsa-sha1"; + } else { + return algorithm; + } + } + + /** + * Define o valor da propriedade algorithm. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAlgorithm(String value) { + this.algorithm = value; + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TEnvEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TEnvEvento.java new file mode 100644 index 00000000..b9d9dfdc --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TEnvEvento.java @@ -0,0 +1,130 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + * Tipo Lote de Envio + * + *

Classe Java de TEnvEvento complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TEnvEvento">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="idLote">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <whiteSpace value="preserve"/>
+ *               <pattern value="[0-9]{1,15}"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="evento" type="{http://www.portalfiscal.inf.br/nfe}TEvento" maxOccurs="20"/>
+ *       </sequence>
+ *       <attribute name="versao" use="required" type="{http://www.portalfiscal.inf.br/nfe}TVerEnvEvento" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TEnvEvento", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "idLote", + "evento" +}) +public class TEnvEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String idLote; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected List evento; + @XmlAttribute(name = "versao", required = true) + protected String versao; + + /** + * Obtém o valor da propriedade idLote. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdLote() { + return idLote; + } + + /** + * Define o valor da propriedade idLote. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdLote(String value) { + this.idLote = value; + } + + /** + * Gets the value of the evento property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the evento property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getEvento().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TEvento } + * + * + */ + public List getEvento() { + if (evento == null) { + evento = new ArrayList(); + } + return this.evento; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TEvento.java new file mode 100644 index 00000000..90828408 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TEvento.java @@ -0,0 +1,640 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import org.w3c.dom.Element; + +import javax.xml.bind.annotation.*; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import javax.xml.namespace.QName; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * Tipo Evento + * + *

Classe Java de TEvento complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TEvento">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="infEvento">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="cOrgao" type="{http://www.portalfiscal.inf.br/nfe}TCOrgaoIBGE"/>
+ *                   <element name="tpAmb" type="{http://www.portalfiscal.inf.br/nfe}TAmb"/>
+ *                   <choice>
+ *                     <element name="CNPJ" type="{http://www.portalfiscal.inf.br/nfe}TCnpjOpc"/>
+ *                     <element name="CPF" type="{http://www.portalfiscal.inf.br/nfe}TCpf"/>
+ *                   </choice>
+ *                   <element name="chNFe" type="{http://www.portalfiscal.inf.br/nfe}TChNFe"/>
+ *                   <element name="dhEvento" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC"/>
+ *                   <element name="tpEvento">
+ *                     <simpleType>
+ *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *                         <whiteSpace value="preserve"/>
+ *                         <pattern value="[0-9]{6}"/>
+ *                       </restriction>
+ *                     </simpleType>
+ *                   </element>
+ *                   <element name="nSeqEvento">
+ *                     <simpleType>
+ *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *                         <whiteSpace value="preserve"/>
+ *                         <pattern value="[1-9][0-9]{0,1}"/>
+ *                       </restriction>
+ *                     </simpleType>
+ *                   </element>
+ *                   <element name="verEvento">
+ *                     <simpleType>
+ *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *                         <whiteSpace value="preserve"/>
+ *                       </restriction>
+ *                     </simpleType>
+ *                   </element>
+ *                   <element name="detEvento">
+ *                     <complexType>
+ *                       <complexContent>
+ *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                           <sequence>
+ *                             <any processContents='skip' maxOccurs="unbounded"/>
+ *                           </sequence>
+ *                           <anyAttribute processContents='skip'/>
+ *                         </restriction>
+ *                       </complexContent>
+ *                     </complexType>
+ *                   </element>
+ *                 </sequence>
+ *                 <attribute name="Id" use="required">
+ *                   <simpleType>
+ *                     <restriction base="{http://www.w3.org/2001/XMLSchema}ID">
+ *                       <pattern value="ID[0-9]{52}"/>
+ *                     </restriction>
+ *                   </simpleType>
+ *                 </attribute>
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element ref="{http://www.w3.org/2000/09/xmldsig#}Signature"/>
+ *       </sequence>
+ *       <attribute name="versao" use="required" type="{http://www.portalfiscal.inf.br/nfe}TVerEvento" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TEvento", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "infEvento", + "signature" +}) +public class TEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected TEvento.InfEvento infEvento; + @XmlElement(name = "Signature", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected SignatureType signature; + @XmlAttribute(name = "versao", required = true) + protected String versao; + + /** + * Obtém o valor da propriedade infEvento. + * + * @return + * possible object is + * {@link TEvento.InfEvento } + * + */ + public TEvento.InfEvento getInfEvento() { + return infEvento; + } + + /** + * Define o valor da propriedade infEvento. + * + * @param value + * allowed object is + * {@link TEvento.InfEvento } + * + */ + public void setInfEvento(TEvento.InfEvento value) { + this.infEvento = value; + } + + /** + * Obtém o valor da propriedade signature. + * + * @return + * possible object is + * {@link SignatureType } + * + */ + public SignatureType getSignature() { + return signature; + } + + /** + * Define o valor da propriedade signature. + * + * @param value + * allowed object is + * {@link SignatureType } + * + */ + public void setSignature(SignatureType value) { + this.signature = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="cOrgao" type="{http://www.portalfiscal.inf.br/nfe}TCOrgaoIBGE"/>
+     *         <element name="tpAmb" type="{http://www.portalfiscal.inf.br/nfe}TAmb"/>
+     *         <choice>
+     *           <element name="CNPJ" type="{http://www.portalfiscal.inf.br/nfe}TCnpjOpc"/>
+     *           <element name="CPF" type="{http://www.portalfiscal.inf.br/nfe}TCpf"/>
+     *         </choice>
+     *         <element name="chNFe" type="{http://www.portalfiscal.inf.br/nfe}TChNFe"/>
+     *         <element name="dhEvento" type="{http://www.portalfiscal.inf.br/nfe}TDateTimeUTC"/>
+     *         <element name="tpEvento">
+     *           <simpleType>
+     *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+     *               <whiteSpace value="preserve"/>
+     *               <pattern value="[0-9]{6}"/>
+     *             </restriction>
+     *           </simpleType>
+     *         </element>
+     *         <element name="nSeqEvento">
+     *           <simpleType>
+     *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+     *               <whiteSpace value="preserve"/>
+     *               <pattern value="[1-9][0-9]{0,1}"/>
+     *             </restriction>
+     *           </simpleType>
+     *         </element>
+     *         <element name="verEvento">
+     *           <simpleType>
+     *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+     *               <whiteSpace value="preserve"/>
+     *             </restriction>
+     *           </simpleType>
+     *         </element>
+     *         <element name="detEvento">
+     *           <complexType>
+     *             <complexContent>
+     *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *                 <sequence>
+     *                   <any processContents='skip' maxOccurs="unbounded"/>
+     *                 </sequence>
+     *                 <anyAttribute processContents='skip'/>
+     *               </restriction>
+     *             </complexContent>
+     *           </complexType>
+     *         </element>
+     *       </sequence>
+     *       <attribute name="Id" use="required">
+     *         <simpleType>
+     *           <restriction base="{http://www.w3.org/2001/XMLSchema}ID">
+     *             <pattern value="ID[0-9]{52}"/>
+     *           </restriction>
+     *         </simpleType>
+     *       </attribute>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "cOrgao", + "tpAmb", + "cnpj", + "cpf", + "chNFe", + "dhEvento", + "tpEvento", + "nSeqEvento", + "verEvento", + "detEvento" + }) + public static class InfEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgao; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAmb; + @XmlElement(name = "CNPJ", namespace = "http://www.portalfiscal.inf.br/nfe") + protected String cnpj; + @XmlElement(name = "CPF", namespace = "http://www.portalfiscal.inf.br/nfe") + protected String cpf; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String chNFe; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String dhEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String nSeqEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected TEvento.InfEvento.DetEvento detEvento; + @XmlAttribute(name = "Id", required = true) + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + protected String id; + + /** + * Obtém o valor da propriedade cOrgao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgao() { + return cOrgao; + } + + /** + * Define o valor da propriedade cOrgao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgao(String value) { + this.cOrgao = value; + } + + /** + * Obtém o valor da propriedade tpAmb. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAmb() { + return tpAmb; + } + + /** + * Define o valor da propriedade tpAmb. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAmb(String value) { + this.tpAmb = value; + } + + /** + * Obtém o valor da propriedade cnpj. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCNPJ() { + return cnpj; + } + + /** + * Define o valor da propriedade cnpj. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCNPJ(String value) { + this.cnpj = value; + } + + /** + * Obtém o valor da propriedade cpf. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCPF() { + return cpf; + } + + /** + * Define o valor da propriedade cpf. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCPF(String value) { + this.cpf = value; + } + + /** + * Obtém o valor da propriedade chNFe. + * + * @return + * possible object is + * {@link String } + * + */ + public String getChNFe() { + return chNFe; + } + + /** + * Define o valor da propriedade chNFe. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setChNFe(String value) { + this.chNFe = value; + } + + /** + * Obtém o valor da propriedade dhEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDhEvento() { + return dhEvento; + } + + /** + * Define o valor da propriedade dhEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDhEvento(String value) { + this.dhEvento = value; + } + + /** + * Obtém o valor da propriedade tpEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpEvento() { + return tpEvento; + } + + /** + * Define o valor da propriedade tpEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpEvento(String value) { + this.tpEvento = value; + } + + /** + * Obtém o valor da propriedade nSeqEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNSeqEvento() { + return nSeqEvento; + } + + /** + * Define o valor da propriedade nSeqEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNSeqEvento(String value) { + this.nSeqEvento = value; + } + + /** + * Obtém o valor da propriedade verEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerEvento() { + return verEvento; + } + + /** + * Define o valor da propriedade verEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerEvento(String value) { + this.verEvento = value; + } + + /** + * Obtém o valor da propriedade detEvento. + * + * @return + * possible object is + * {@link TEvento.InfEvento.DetEvento } + * + */ + public TEvento.InfEvento.DetEvento getDetEvento() { + return detEvento; + } + + /** + * Define o valor da propriedade detEvento. + * + * @param value + * allowed object is + * {@link TEvento.InfEvento.DetEvento } + * + */ + public void setDetEvento(TEvento.InfEvento.DetEvento value) { + this.detEvento = value; + } + + /** + * Obtém o valor da propriedade id. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Define o valor da propriedade id. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+         * <complexType>
+         *   <complexContent>
+         *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+         *       <sequence>
+         *         <any processContents='skip' maxOccurs="unbounded"/>
+         *       </sequence>
+         *       <anyAttribute processContents='skip'/>
+         *     </restriction>
+         *   </complexContent>
+         * </complexType>
+         * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "any" + }) + public static class DetEvento { + + @XmlAnyElement + protected List any; + @XmlAnyAttribute + private Map otherAttributes = new HashMap(); + + /** + * Gets the value of the any property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the any property. + * + *

+ * For example, to add a new item, do as follows: + *

+             *    getAny().add(newItem);
+             * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link Element } + * + * + */ + public List getAny() { + if (any == null) { + any = new ArrayList(); + } + return this.any; + } + + /** + * Gets a map that contains attributes that aren't bound to any typed property on this class. + * + *

+ * the map is keyed by the name of the attribute and + * the value is the string value of the attribute. + * + * the map returned by this method is live, and you can add new attribute + * by updating the map directly. Because of this design, there's no setter. + * + * + * @return + * always non-null + */ + public Map getOtherAttributes() { + return otherAttributes; + } + + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TProcEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TProcEvento.java new file mode 100644 index 00000000..71404d62 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TProcEvento.java @@ -0,0 +1,116 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.*; + + +/** + * Tipo procEvento + * + *

Classe Java de TProcEvento complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TProcEvento">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="evento" type="{http://www.portalfiscal.inf.br/nfe}TEvento"/>
+ *         <element name="retEvento" type="{http://www.portalfiscal.inf.br/nfe}TRetEvento"/>
+ *       </sequence>
+ *       <attribute name="versao" use="required" type="{http://www.portalfiscal.inf.br/nfe}TVerEvento" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TProcEvento", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "evento", + "retEvento" +}) +public class TProcEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected TEvento evento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected TRetEvento retEvento; + @XmlAttribute(name = "versao", required = true) + protected String versao; + + /** + * Obtém o valor da propriedade evento. + * + * @return + * possible object is + * {@link TEvento } + * + */ + public TEvento getEvento() { + return evento; + } + + /** + * Define o valor da propriedade evento. + * + * @param value + * allowed object is + * {@link TEvento } + * + */ + public void setEvento(TEvento value) { + this.evento = value; + } + + /** + * Obtém o valor da propriedade retEvento. + * + * @return + * possible object is + * {@link TRetEvento } + * + */ + public TRetEvento getRetEvento() { + return retEvento; + } + + /** + * Define o valor da propriedade retEvento. + * + * @param value + * allowed object is + * {@link TRetEvento } + * + */ + public void setRetEvento(TRetEvento value) { + this.retEvento = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TRetEnvEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TRetEnvEvento.java new file mode 100644 index 00000000..fbcb1b0e --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TRetEnvEvento.java @@ -0,0 +1,270 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + * Tipo Retorno de Lote de Envio + * + *

Classe Java de TRetEnvEvento complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TRetEnvEvento">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="idLote">
+ *           <simpleType>
+ *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               <whiteSpace value="preserve"/>
+ *               <pattern value="[0-9]{1,15}"/>
+ *             </restriction>
+ *           </simpleType>
+ *         </element>
+ *         <element name="tpAmb" type="{http://www.portalfiscal.inf.br/nfe}TAmb"/>
+ *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *         <element name="cOrgao" type="{http://www.portalfiscal.inf.br/nfe}TCOrgaoIBGE"/>
+ *         <element name="cStat" type="{http://www.portalfiscal.inf.br/nfe}TStat"/>
+ *         <element name="xMotivo" type="{http://www.portalfiscal.inf.br/nfe}TMotivo"/>
+ *         <element name="retEvento" type="{http://www.portalfiscal.inf.br/nfe}TRetEvento" maxOccurs="20" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="versao" use="required" type="{http://www.portalfiscal.inf.br/nfe}TVerEnvEvento" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TRetEnvEvento", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "idLote", + "tpAmb", + "verAplic", + "cOrgao", + "cStat", + "xMotivo", + "retEvento" +}) +public class TRetEnvEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String idLote; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAmb; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgao; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cStat; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String xMotivo; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected List retEvento; + @XmlAttribute(name = "versao", required = true) + protected String versao; + + /** + * Obtém o valor da propriedade idLote. + * + * @return + * possible object is + * {@link String } + * + */ + public String getIdLote() { + return idLote; + } + + /** + * Define o valor da propriedade idLote. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setIdLote(String value) { + this.idLote = value; + } + + /** + * Obtém o valor da propriedade tpAmb. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAmb() { + return tpAmb; + } + + /** + * Define o valor da propriedade tpAmb. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAmb(String value) { + this.tpAmb = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Obtém o valor da propriedade cOrgao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgao() { + return cOrgao; + } + + /** + * Define o valor da propriedade cOrgao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgao(String value) { + this.cOrgao = value; + } + + /** + * Obtém o valor da propriedade cStat. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCStat() { + return cStat; + } + + /** + * Define o valor da propriedade cStat. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCStat(String value) { + this.cStat = value; + } + + /** + * Obtém o valor da propriedade xMotivo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getXMotivo() { + return xMotivo; + } + + /** + * Define o valor da propriedade xMotivo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setXMotivo(String value) { + this.xMotivo = value; + } + + /** + * Gets the value of the retEvento property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the retEvento property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getRetEvento().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TRetEvento } + * + * + */ + public List getRetEvento() { + if (retEvento == null) { + retEvento = new ArrayList(); + } + return this.retEvento; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TRetEvento.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TRetEvento.java new file mode 100644 index 00000000..848e9a91 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TRetEvento.java @@ -0,0 +1,705 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.*; +import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + + +/** + * Tipo retorno do Evento + * + *

Classe Java de TRetEvento complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TRetEvento">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="infEvento">
+ *           <complexType>
+ *             <complexContent>
+ *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 <sequence>
+ *                   <element name="tpAmb" type="{http://www.portalfiscal.inf.br/nfe}TAmb"/>
+ *                   <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+ *                   <element name="cOrgao" type="{http://www.portalfiscal.inf.br/nfe}TCOrgaoIBGE"/>
+ *                   <element name="cStat" type="{http://www.portalfiscal.inf.br/nfe}TStat"/>
+ *                   <element name="xMotivo" type="{http://www.portalfiscal.inf.br/nfe}TMotivo"/>
+ *                   <element name="chNFe" type="{http://www.portalfiscal.inf.br/nfe}TChNFe" minOccurs="0"/>
+ *                   <element name="tpEvento" minOccurs="0">
+ *                     <simpleType>
+ *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *                         <whiteSpace value="preserve"/>
+ *                         <pattern value="[0-9]{6}"/>
+ *                       </restriction>
+ *                     </simpleType>
+ *                   </element>
+ *                   <element name="xEvento" minOccurs="0">
+ *                     <simpleType>
+ *                       <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *                         <minLength value="5"/>
+ *                         <maxLength value="60"/>
+ *                       </restriction>
+ *                     </simpleType>
+ *                   </element>
+ *                   <element name="nSeqEvento" minOccurs="0">
+ *                     <simpleType>
+ *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *                         <whiteSpace value="preserve"/>
+ *                         <pattern value="[1-9][0-9]{0,1}"/>
+ *                       </restriction>
+ *                     </simpleType>
+ *                   </element>
+ *                   <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCOrgaoIBGE" minOccurs="0"/>
+ *                   <choice minOccurs="0">
+ *                     <element name="CNPJDest" type="{http://www.portalfiscal.inf.br/nfe}TCnpjOpc"/>
+ *                     <element name="CPFDest" type="{http://www.portalfiscal.inf.br/nfe}TCpf"/>
+ *                   </choice>
+ *                   <element name="emailDest" minOccurs="0">
+ *                     <simpleType>
+ *                       <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+ *                         <minLength value="1"/>
+ *                         <maxLength value="60"/>
+ *                       </restriction>
+ *                     </simpleType>
+ *                   </element>
+ *                   <element name="dhRegEvento">
+ *                     <simpleType>
+ *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *                         <whiteSpace value="preserve"/>
+ *                         <pattern value="(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d[\-,\+](0[0-9]|10|11|12):00"/>
+ *                       </restriction>
+ *                     </simpleType>
+ *                   </element>
+ *                   <element name="nProt" type="{http://www.portalfiscal.inf.br/nfe}TProt" minOccurs="0"/>
+ *                 </sequence>
+ *                 <attribute name="Id">
+ *                   <simpleType>
+ *                     <restriction base="{http://www.w3.org/2001/XMLSchema}ID">
+ *                       <pattern value="ID[0-9]{15}"/>
+ *                     </restriction>
+ *                   </simpleType>
+ *                 </attribute>
+ *               </restriction>
+ *             </complexContent>
+ *           </complexType>
+ *         </element>
+ *         <element ref="{http://www.w3.org/2000/09/xmldsig#}Signature" minOccurs="0"/>
+ *       </sequence>
+ *       <attribute name="versao" use="required" type="{http://www.portalfiscal.inf.br/nfe}TVerEvento" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TRetEvento", namespace = "http://www.portalfiscal.inf.br/nfe", propOrder = { + "infEvento", + "signature" +}) +public class TRetEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected TRetEvento.InfEvento infEvento; + @XmlElement(name = "Signature", namespace = "http://www.w3.org/2000/09/xmldsig#") + protected SignatureType signature; + @XmlAttribute(name = "versao", required = true) + protected String versao; + + /** + * Obtém o valor da propriedade infEvento. + * + * @return + * possible object is + * {@link TRetEvento.InfEvento } + * + */ + public TRetEvento.InfEvento getInfEvento() { + return infEvento; + } + + /** + * Define o valor da propriedade infEvento. + * + * @param value + * allowed object is + * {@link TRetEvento.InfEvento } + * + */ + public void setInfEvento(TRetEvento.InfEvento value) { + this.infEvento = value; + } + + /** + * Obtém o valor da propriedade signature. + * + * @return + * possible object is + * {@link SignatureType } + * + */ + public SignatureType getSignature() { + return signature; + } + + /** + * Define o valor da propriedade signature. + * + * @param value + * allowed object is + * {@link SignatureType } + * + */ + public void setSignature(SignatureType value) { + this.signature = value; + } + + /** + * Obtém o valor da propriedade versao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVersao() { + return versao; + } + + /** + * Define o valor da propriedade versao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVersao(String value) { + this.versao = value; + } + + + /** + *

Classe Java de anonymous complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+     * <complexType>
+     *   <complexContent>
+     *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       <sequence>
+     *         <element name="tpAmb" type="{http://www.portalfiscal.inf.br/nfe}TAmb"/>
+     *         <element name="verAplic" type="{http://www.portalfiscal.inf.br/nfe}TVerAplic"/>
+     *         <element name="cOrgao" type="{http://www.portalfiscal.inf.br/nfe}TCOrgaoIBGE"/>
+     *         <element name="cStat" type="{http://www.portalfiscal.inf.br/nfe}TStat"/>
+     *         <element name="xMotivo" type="{http://www.portalfiscal.inf.br/nfe}TMotivo"/>
+     *         <element name="chNFe" type="{http://www.portalfiscal.inf.br/nfe}TChNFe" minOccurs="0"/>
+     *         <element name="tpEvento" minOccurs="0">
+     *           <simpleType>
+     *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+     *               <whiteSpace value="preserve"/>
+     *               <pattern value="[0-9]{6}"/>
+     *             </restriction>
+     *           </simpleType>
+     *         </element>
+     *         <element name="xEvento" minOccurs="0">
+     *           <simpleType>
+     *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+     *               <minLength value="5"/>
+     *               <maxLength value="60"/>
+     *             </restriction>
+     *           </simpleType>
+     *         </element>
+     *         <element name="nSeqEvento" minOccurs="0">
+     *           <simpleType>
+     *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+     *               <whiteSpace value="preserve"/>
+     *               <pattern value="[1-9][0-9]{0,1}"/>
+     *             </restriction>
+     *           </simpleType>
+     *         </element>
+     *         <element name="cOrgaoAutor" type="{http://www.portalfiscal.inf.br/nfe}TCOrgaoIBGE" minOccurs="0"/>
+     *         <choice minOccurs="0">
+     *           <element name="CNPJDest" type="{http://www.portalfiscal.inf.br/nfe}TCnpjOpc"/>
+     *           <element name="CPFDest" type="{http://www.portalfiscal.inf.br/nfe}TCpf"/>
+     *         </choice>
+     *         <element name="emailDest" minOccurs="0">
+     *           <simpleType>
+     *             <restriction base="{http://www.portalfiscal.inf.br/nfe}TString">
+     *               <minLength value="1"/>
+     *               <maxLength value="60"/>
+     *             </restriction>
+     *           </simpleType>
+     *         </element>
+     *         <element name="dhRegEvento">
+     *           <simpleType>
+     *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+     *               <whiteSpace value="preserve"/>
+     *               <pattern value="(((20(([02468][048])|([13579][26]))-02-29))|(20[0-9][0-9])-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))T(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d[\-,\+](0[0-9]|10|11|12):00"/>
+     *             </restriction>
+     *           </simpleType>
+     *         </element>
+     *         <element name="nProt" type="{http://www.portalfiscal.inf.br/nfe}TProt" minOccurs="0"/>
+     *       </sequence>
+     *       <attribute name="Id">
+     *         <simpleType>
+     *           <restriction base="{http://www.w3.org/2001/XMLSchema}ID">
+     *             <pattern value="ID[0-9]{15}"/>
+     *           </restriction>
+     *         </simpleType>
+     *       </attribute>
+     *     </restriction>
+     *   </complexContent>
+     * </complexType>
+     * 
+ * + * + */ + @XmlAccessorType(XmlAccessType.FIELD) + @XmlType(name = "", propOrder = { + "tpAmb", + "verAplic", + "cOrgao", + "cStat", + "xMotivo", + "chNFe", + "tpEvento", + "xEvento", + "nSeqEvento", + "cOrgaoAutor", + "cnpjDest", + "cpfDest", + "emailDest", + "dhRegEvento", + "nProt" + }) + public static class InfEvento { + + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String tpAmb; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String verAplic; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cOrgao; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String cStat; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String xMotivo; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String chNFe; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String tpEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String xEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String nSeqEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String cOrgaoAutor; + @XmlElement(name = "CNPJDest", namespace = "http://www.portalfiscal.inf.br/nfe") + protected String cnpjDest; + @XmlElement(name = "CPFDest", namespace = "http://www.portalfiscal.inf.br/nfe") + protected String cpfDest; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String emailDest; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe", required = true) + protected String dhRegEvento; + @XmlElement(namespace = "http://www.portalfiscal.inf.br/nfe") + protected String nProt; + @XmlAttribute(name = "Id") + @XmlJavaTypeAdapter(CollapsedStringAdapter.class) + @XmlID + protected String id; + + /** + * Obtém o valor da propriedade tpAmb. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpAmb() { + return tpAmb; + } + + /** + * Define o valor da propriedade tpAmb. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpAmb(String value) { + this.tpAmb = value; + } + + /** + * Obtém o valor da propriedade verAplic. + * + * @return + * possible object is + * {@link String } + * + */ + public String getVerAplic() { + return verAplic; + } + + /** + * Define o valor da propriedade verAplic. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setVerAplic(String value) { + this.verAplic = value; + } + + /** + * Obtém o valor da propriedade cOrgao. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgao() { + return cOrgao; + } + + /** + * Define o valor da propriedade cOrgao. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgao(String value) { + this.cOrgao = value; + } + + /** + * Obtém o valor da propriedade cStat. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCStat() { + return cStat; + } + + /** + * Define o valor da propriedade cStat. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCStat(String value) { + this.cStat = value; + } + + /** + * Obtém o valor da propriedade xMotivo. + * + * @return + * possible object is + * {@link String } + * + */ + public String getXMotivo() { + return xMotivo; + } + + /** + * Define o valor da propriedade xMotivo. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setXMotivo(String value) { + this.xMotivo = value; + } + + /** + * Obtém o valor da propriedade chNFe. + * + * @return + * possible object is + * {@link String } + * + */ + public String getChNFe() { + return chNFe; + } + + /** + * Define o valor da propriedade chNFe. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setChNFe(String value) { + this.chNFe = value; + } + + /** + * Obtém o valor da propriedade tpEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getTpEvento() { + return tpEvento; + } + + /** + * Define o valor da propriedade tpEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setTpEvento(String value) { + this.tpEvento = value; + } + + /** + * Obtém o valor da propriedade xEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getXEvento() { + return xEvento; + } + + /** + * Define o valor da propriedade xEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setXEvento(String value) { + this.xEvento = value; + } + + /** + * Obtém o valor da propriedade nSeqEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNSeqEvento() { + return nSeqEvento; + } + + /** + * Define o valor da propriedade nSeqEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNSeqEvento(String value) { + this.nSeqEvento = value; + } + + /** + * Obtém o valor da propriedade cOrgaoAutor. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCOrgaoAutor() { + return cOrgaoAutor; + } + + /** + * Define o valor da propriedade cOrgaoAutor. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCOrgaoAutor(String value) { + this.cOrgaoAutor = value; + } + + /** + * Obtém o valor da propriedade cnpjDest. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCNPJDest() { + return cnpjDest; + } + + /** + * Define o valor da propriedade cnpjDest. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCNPJDest(String value) { + this.cnpjDest = value; + } + + /** + * Obtém o valor da propriedade cpfDest. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCPFDest() { + return cpfDest; + } + + /** + * Define o valor da propriedade cpfDest. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCPFDest(String value) { + this.cpfDest = value; + } + + /** + * Obtém o valor da propriedade emailDest. + * + * @return + * possible object is + * {@link String } + * + */ + public String getEmailDest() { + return emailDest; + } + + /** + * Define o valor da propriedade emailDest. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setEmailDest(String value) { + this.emailDest = value; + } + + /** + * Obtém o valor da propriedade dhRegEvento. + * + * @return + * possible object is + * {@link String } + * + */ + public String getDhRegEvento() { + return dhRegEvento; + } + + /** + * Define o valor da propriedade dhRegEvento. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setDhRegEvento(String value) { + this.dhRegEvento = value; + } + + /** + * Obtém o valor da propriedade nProt. + * + * @return + * possible object is + * {@link String } + * + */ + public String getNProt() { + return nProt; + } + + /** + * Define o valor da propriedade nProt. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setNProt(String value) { + this.nProt = value; + } + + /** + * Obtém o valor da propriedade id. + * + * @return + * possible object is + * {@link String } + * + */ + public String getId() { + return id; + } + + /** + * Define o valor da propriedade id. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setId(String value) { + this.id = value; + } + + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TUf.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TUf.java new file mode 100644 index 00000000..e8315277 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TUf.java @@ -0,0 +1,91 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUf. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUf">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *     <enumeration value="EX"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUf", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUf { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO, + EX; + + public String value() { + return name(); + } + + public static TUf fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TUfEmi.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TUfEmi.java new file mode 100644 index 00000000..254b3c6d --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TUfEmi.java @@ -0,0 +1,89 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de TUfEmi. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + *

+ *

+ * <simpleType name="TUfEmi">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     <whiteSpace value="preserve"/>
+ *     <enumeration value="AC"/>
+ *     <enumeration value="AL"/>
+ *     <enumeration value="AM"/>
+ *     <enumeration value="AP"/>
+ *     <enumeration value="BA"/>
+ *     <enumeration value="CE"/>
+ *     <enumeration value="DF"/>
+ *     <enumeration value="ES"/>
+ *     <enumeration value="GO"/>
+ *     <enumeration value="MA"/>
+ *     <enumeration value="MG"/>
+ *     <enumeration value="MS"/>
+ *     <enumeration value="MT"/>
+ *     <enumeration value="PA"/>
+ *     <enumeration value="PB"/>
+ *     <enumeration value="PE"/>
+ *     <enumeration value="PI"/>
+ *     <enumeration value="PR"/>
+ *     <enumeration value="RJ"/>
+ *     <enumeration value="RN"/>
+ *     <enumeration value="RO"/>
+ *     <enumeration value="RR"/>
+ *     <enumeration value="RS"/>
+ *     <enumeration value="SC"/>
+ *     <enumeration value="SE"/>
+ *     <enumeration value="SP"/>
+ *     <enumeration value="TO"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "TUfEmi", namespace = "http://www.portalfiscal.inf.br/nfe") +@XmlEnum +public enum TUfEmi { + + AC, + AL, + AM, + AP, + BA, + CE, + DF, + ES, + GO, + MA, + MG, + MS, + MT, + PA, + PB, + PE, + PI, + PR, + RJ, + RN, + RO, + RR, + RS, + SC, + SE, + SP, + TO; + + public String value() { + return name(); + } + + public static TUfEmi fromValue(String v) { + return valueOf(v); + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TransformType.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TransformType.java new file mode 100644 index 00000000..91cd4e07 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TransformType.java @@ -0,0 +1,93 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.*; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de TransformType complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TransformType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence maxOccurs="unbounded" minOccurs="0">
+ *         <element name="XPath" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *       <attribute name="Algorithm" use="required" type="{http://www.w3.org/2000/09/xmldsig#}TTransformURI" />
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TransformType", namespace = "http://www.w3.org/2000/09/xmldsig#", propOrder = { + "xPath" +}) +public class TransformType { + + @XmlElement(name = "XPath", namespace = "http://www.w3.org/2000/09/xmldsig#") + protected List xPath; + @XmlAttribute(name = "Algorithm", required = true) + protected String algorithm; + + /** + * Gets the value of the xPath property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the xPath property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getXPath().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link String } + * + * + */ + public List getXPath() { + if (xPath == null) { + xPath = new ArrayList(); + } + return this.xPath; + } + + /** + * Obtém o valor da propriedade algorithm. + * + * @return + * possible object is + * {@link String } + * + */ + public String getAlgorithm() { + return algorithm; + } + + /** + * Define o valor da propriedade algorithm. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setAlgorithm(String value) { + this.algorithm = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TransformsType.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TransformsType.java new file mode 100644 index 00000000..2043eba4 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/TransformsType.java @@ -0,0 +1,69 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import java.util.ArrayList; +import java.util.List; + + +/** + *

Classe Java de TransformsType complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="TransformsType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Transform" type="{http://www.w3.org/2000/09/xmldsig#}TransformType" maxOccurs="2" minOccurs="2"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "TransformsType", namespace = "http://www.w3.org/2000/09/xmldsig#", propOrder = { + "transform" +}) +public class TransformsType { + + @XmlElement(name = "Transform", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected List transform; + + /** + * Gets the value of the transform property. + * + *

+ * This accessor method returns a reference to the live list, + * not a snapshot. Therefore any modification you make to the + * returned list will be present inside the JAXB object. + * This is why there is not a set method for the transform property. + * + *

+ * For example, to add a new item, do as follows: + *

+     *    getTransform().add(newItem);
+     * 
+ * + * + *

+ * Objects of the following type(s) are allowed in the list + * {@link TransformType } + * + * + */ + public List getTransform() { + if (transform == null) { + transform = new ArrayList(); + } + return this.transform; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/X509DataType.java b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/X509DataType.java new file mode 100644 index 00000000..4b8ce541 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/schema/eventoGenerico/X509DataType.java @@ -0,0 +1,60 @@ + +package br.com.swconsultoria.nfe.schema.eventoGenerico; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Classe Java de X509DataType complex type. + * + *

O seguinte fragmento do esquema especifica o conteúdo esperado contido dentro desta classe. + * + *

+ * <complexType name="X509DataType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="X509Certificate" type="{http://www.w3.org/2001/XMLSchema}base64Binary"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "X509DataType", namespace = "http://www.w3.org/2000/09/xmldsig#", propOrder = { + "x509Certificate" +}) +public class X509DataType { + + @XmlElement(name = "X509Certificate", namespace = "http://www.w3.org/2000/09/xmldsig#", required = true) + protected byte[] x509Certificate; + + /** + * Obtém o valor da propriedade x509Certificate. + * + * @return + * possible object is + * byte[] + */ + public byte[] getX509Certificate() { + return x509Certificate; + } + + /** + * Define o valor da propriedade x509Certificate. + * + * @param value + * allowed object is + * byte[] + */ + public void setX509Certificate(byte[] value) { + this.x509Certificate = value; + } + +} diff --git a/src/main/java/br/com/swconsultoria/nfe/util/ConstantesUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/ConstantesUtil.java index 77f06bfc..86c5befe 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/ConstantesUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/ConstantesUtil.java @@ -19,5 +19,6 @@ interface VERSAO { String EVENTO_CCE = "1.00"; String EVENTO_MANIFESTAR = "1.00"; String EVENTO_EPEC = "1.00"; + String EVENTO_GENERICO = "1.00"; } } diff --git a/src/main/java/br/com/swconsultoria/nfe/util/EventoGenericoUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/EventoGenericoUtil.java new file mode 100644 index 00000000..513b9fd2 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/util/EventoGenericoUtil.java @@ -0,0 +1,103 @@ +package br.com.swconsultoria.nfe.util; + +import br.com.swconsultoria.nfe.Assinar; +import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe; +import br.com.swconsultoria.nfe.dom.Evento; +import br.com.swconsultoria.nfe.dom.enuns.AssinaturaEnum; +import br.com.swconsultoria.nfe.dom.enuns.EventosEnum; +import br.com.swconsultoria.nfe.exception.NfeException; +import br.com.swconsultoria.nfe.schema.eventoGenerico.TEnvEvento; +import br.com.swconsultoria.nfe.schema.eventoGenerico.TEvento; +import br.com.swconsultoria.nfe.schema.eventoGenerico.TProcEvento; +import br.com.swconsultoria.nfe.schema.eventoGenerico.TRetEvento; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import javax.xml.bind.JAXBException; +import javax.xml.namespace.QName; + +public class EventoGenericoUtil { + + private EventoGenericoUtil() {} + + /** + * MOnta o Evento Generico + * + * @param evento + * @param configuracao + * @return + * @throws NfeException + */ + public static TEnvEvento montaEvento(Evento evento, Class clazz, EventosEnum eventosEnum, ConfiguracoesNfe configuracao) throws NfeException { + + TEnvEvento enviEvento = new TEnvEvento(); + enviEvento.setVersao(ConstantesUtil.VERSAO.EVENTO_GENERICO); + enviEvento.setIdLote("1"); + + String id = "ID" + eventosEnum.getCodigo() + evento.getChave()+ ChaveUtil.completarComZerosAEsquerda(String.valueOf(evento.getSequencia()), 2); + + TEvento eventoGenerico = new TEvento(); + eventoGenerico.setVersao(ConstantesUtil.VERSAO.EVENTO_GENERICO); + + TEvento.InfEvento infoEvento = new TEvento.InfEvento(); + infoEvento.setId(id); + infoEvento.setChNFe(evento.getChave()); + infoEvento.setCOrgao(String.valueOf(configuracao.getEstado().getCodigoUF())); + infoEvento.setTpAmb(configuracao.getAmbiente().getCodigo()); + + infoEvento.setCPF(evento.getCpf()); + infoEvento.setCNPJ(evento.getCnpj()); + + infoEvento.setDhEvento(XmlNfeUtil.dataNfe(evento.getDataEvento(), configuracao.getZoneId())); + infoEvento.setTpEvento(eventosEnum.getCodigo()); + infoEvento.setNSeqEvento(String.valueOf(evento.getSequencia())); + infoEvento.setVerEvento(ConstantesUtil.VERSAO.EVENTO_GENERICO); + + TEvento. InfEvento.DetEvento detEvento = new TEvento.InfEvento.DetEvento(); + Element element = XmlNfeUtil.objectToElement(evento. getDetEvento(), clazz); + detEvento.getOtherAttributes().put(new QName("versao"), element.getAttribute("versao")); + + NodeList children = element.getChildNodes(); + for (int i = 0; i < children.getLength(); i++) { + Node child = children.item(i); + if (child.getNodeType() == Node.ELEMENT_NODE) { + detEvento.getAny().add((Element) child); + } + } + + infoEvento.setDetEvento(detEvento); + + eventoGenerico.setInfEvento(infoEvento); + enviEvento.getEvento().add(eventoGenerico); + + return enviEvento; + } + + /** + * Cria o ProcEvento de Generico + * + * @param config + * @param enviEvento + * @param retorno + * @return + * @throws JAXBException + * @throws NfeException + */ + public static String criaProcEventoGenerico(ConfiguracoesNfe config, TEnvEvento enviEvento, TRetEvento retorno) throws JAXBException, NfeException { + + String xml = XmlNfeUtil.objectToXml(enviEvento, config.getEncode()); + xml = xml.replace(" xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\"", "") + .replace(" { + retorno.getRetEvento().forEach(retEvento -> { if (!StatusEnum.EVENTO_VINCULADO.getCodigo().equals(retEvento.getInfEvento().getCStat()) && - !StatusEnum.CANCELAMENTO_FORA_PRAZO.getCodigo().equals(retEvento.getInfEvento().getCStat())) { - erro[0] += retEvento.getInfEvento().getChNFe() + " - " +retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); + !StatusEnum.CANCELAMENTO_FORA_PRAZO.getCodigo().equals(retEvento.getInfEvento().getCStat())) { + erro[0] += retEvento.getInfEvento().getChNFe() + " - " + retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); } }); - if(ObjetoUtil.verifica(erro[0]).isPresent()){ + if (ObjetoUtil.verifica(erro[0]).isPresent()) { throw new NfeException(erro[0]); } } @@ -65,13 +65,36 @@ public static void validaCancelamentoSubstituicao(br.com.swconsultoria.nfe.schem } final String[] erro = {""}; - retorno.getRetEvento().forEach( retEvento -> { + retorno.getRetEvento().forEach(retEvento -> { if (!StatusEnum.EVENTO_VINCULADO.getCodigo().equals(retEvento.getInfEvento().getCStat())) { - erro[0] += retEvento.getInfEvento().getChNFe() + " - " +retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); + erro[0] += retEvento.getInfEvento().getChNFe() + " - " + retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); } }); - if(ObjetoUtil.verifica(erro[0]).isPresent()){ + if (ObjetoUtil.verifica(erro[0]).isPresent()) { + throw new NfeException(erro[0]); + } + } + + /** + * Valida o Retorno Do Evento Generico + * + * @param retorno + * @throws NfeException + */ + public static void validaEventoGenerico(br.com.swconsultoria.nfe.schema.eventoGenerico.TRetEnvEvento retorno) throws NfeException { + if (!StatusEnum.LOTE_EVENTO_PROCESSADO.getCodigo().equals(retorno.getCStat())) { + throw new NfeException(retorno.getCStat() + " - " + retorno.getXMotivo()); + } + + final String[] erro = {""}; + retorno.getRetEvento().forEach(retEvento -> { + if (!StatusEnum.EVENTO_VINCULADO.getCodigo().equals(retEvento.getInfEvento().getCStat())) { + erro[0] += retEvento.getInfEvento().getChNFe() + " - " + retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); + } + }); + + if (ObjetoUtil.verifica(erro[0]).isPresent()) { throw new NfeException(erro[0]); } } @@ -88,13 +111,13 @@ public static void validaManifestacao(br.com.swconsultoria.nfe.schema.envConfRec } final String[] erro = {""}; - retorno.getRetEvento().forEach( retEvento -> { + retorno.getRetEvento().forEach(retEvento -> { if (!StatusEnum.EVENTO_VINCULADO.getCodigo().equals(retEvento.getInfEvento().getCStat()) && !StatusEnum.EVENTO_REGISTRADO_NAO_VINCULADO.getCodigo().equals(retEvento.getInfEvento().getCStat())) { - erro[0] += retEvento.getInfEvento().getChNFe() + " - " +retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); + erro[0] += retEvento.getInfEvento().getChNFe() + " - " + retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); } }); - if(ObjetoUtil.verifica(erro[0]).isPresent()){ + if (ObjetoUtil.verifica(erro[0]).isPresent()) { throw new NfeException(erro[0]); } @@ -111,13 +134,13 @@ public static void validaCartaCorrecao(br.com.swconsultoria.nfe.schema.envcce.TR throw new NfeException(retorno.getCStat() + " - " + retorno.getXMotivo()); } final String[] erro = {""}; - retorno.getRetEvento().forEach( retEvento -> { + retorno.getRetEvento().forEach(retEvento -> { if (!StatusEnum.EVENTO_VINCULADO.getCodigo().equals(retEvento.getInfEvento().getCStat())) { - erro[0] += retEvento.getInfEvento().getChNFe() + " - " +retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); + erro[0] += retEvento.getInfEvento().getChNFe() + " - " + retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); } }); - if(ObjetoUtil.verifica(erro[0]).isPresent()){ + if (ObjetoUtil.verifica(erro[0]).isPresent()) { throw new NfeException(erro[0]); } } @@ -135,13 +158,13 @@ public static void validaEpec(br.com.swconsultoria.nfe.schema.envEpec.TRetEnvEve } final String[] erro = {""}; - retorno.getRetEvento().forEach( retEvento -> { + retorno.getRetEvento().forEach(retEvento -> { if (!StatusEnum.EVENTO_VINCULADO.getCodigo().equals(retEvento.getInfEvento().getCStat())) { - erro[0] += retEvento.getInfEvento().getChNFe() + " - " +retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); + erro[0] += retEvento.getInfEvento().getChNFe() + " - " + retEvento.getInfEvento().getCStat() + " - " + retEvento.getInfEvento().getXMotivo() + System.lineSeparator(); } }); - if(ObjetoUtil.verifica(erro[0]).isPresent()){ + if (ObjetoUtil.verifica(erro[0]).isPresent()) { throw new NfeException(erro[0]); } } @@ -197,13 +220,13 @@ public static void validaAssincrono(TRetConsReciNFe retorno) throws NfeException } final String[] erro = {""}; - retorno.getProtNFe().forEach( protNFe -> { + retorno.getProtNFe().forEach(protNFe -> { if (!StatusEnum.AUTORIZADO.getCodigo().equals(protNFe.getInfProt().getCStat()) && !StatusEnum.AUTORIZADO_FORA_PRAZO.getCodigo().equals(protNFe.getInfProt().getCStat())) { - erro[0] += protNFe.getInfProt().getChNFe() + " - " +protNFe.getInfProt().getCStat() + " - " + protNFe.getInfProt().getXMotivo() + System.lineSeparator(); + erro[0] += protNFe.getInfProt().getChNFe() + " - " + protNFe.getInfProt().getCStat() + " - " + protNFe.getInfProt().getXMotivo() + System.lineSeparator(); } }); - if(ObjetoUtil.verifica(erro[0]).isPresent()){ + if (ObjetoUtil.verifica(erro[0]).isPresent()) { throw new NfeException(erro[0]); } @@ -222,7 +245,7 @@ public static void validaSincrono(TRetEnviNFe retorno) throws NfeException { } if (!retorno.getProtNFe().getInfProt().getCStat().equals(StatusEnum.AUTORIZADO.getCodigo()) && - !retorno.getProtNFe().getInfProt().getCStat().equals(StatusEnum.AUTORIZADO_FORA_PRAZO.getCodigo())) { + !retorno.getProtNFe().getInfProt().getCStat().equals(StatusEnum.AUTORIZADO_FORA_PRAZO.getCodigo())) { throw new NfeException(retorno.getProtNFe().getInfProt().getCStat() + " - " + retorno.getProtNFe().getInfProt().getXMotivo()); } } diff --git a/src/main/java/br/com/swconsultoria/nfe/util/WebServiceUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/WebServiceUtil.java index 3e6af7ca..db54f825 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/WebServiceUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/WebServiceUtil.java @@ -289,6 +289,7 @@ private static boolean verificaServicosAmbienteNacional(ServicosEnum tipoServico private static boolean verificaServicosAmbienteSVRS(ServicosEnum tipoServico,DocumentoEnum tipoDocumento ) { return tipoDocumento.equals(DocumentoEnum.NFE) && (tipoServico.equals(ServicosEnum.ECONF) || + tipoServico.equals(ServicosEnum.EVENTO_GENERICO) || tipoServico.equals(ServicosEnum.CANC_ECONF)); } diff --git a/src/main/java/br/com/swconsultoria/nfe/util/XmlNfeUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/XmlNfeUtil.java index 779f48bf..e297cd10 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/XmlNfeUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/XmlNfeUtil.java @@ -10,6 +10,7 @@ import br.com.swconsultoria.nfe.schema_4.enviNFe.TProtNFe; import lombok.extern.java.Log; import org.w3c.dom.Document; +import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.ls.DOMImplementationLS; import org.w3c.dom.ls.LSSerializer; @@ -226,4 +227,18 @@ private static String nodeToString(Node node) { serializer.getDomConfig().setParameter("xml-declaration", false); return serializer.writeToString(node); } + + public static Element objectToElement(Object objeto, Class classe) throws NfeException { + try { + Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + JAXBContext context = JAXBContext.newInstance(classe); + Marshaller marshaller = context.createMarshaller(); + marshaller.marshal(objeto, document); + + return document.getDocumentElement(); + + } catch (Exception e) { + throw new NfeException("Erro Ao Converter Objeto em Elemento: ", e); + } + } } diff --git a/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenerico.java b/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenerico.java new file mode 100644 index 00000000..eac114e9 --- /dev/null +++ b/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenerico.java @@ -0,0 +1,80 @@ +/** + * + */ +package br.com.swconsultoria.nfe.exemplos; + +import br.com.swconsultoria.nfe.Nfe; +import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe; +import br.com.swconsultoria.nfe.dom.Evento; +import br.com.swconsultoria.nfe.dom.enuns.AmbienteEnum; +import br.com.swconsultoria.nfe.dom.enuns.EstadosEnum; +import br.com.swconsultoria.nfe.dom.enuns.EventosEnum; +import br.com.swconsultoria.nfe.schema.evento112110.DetEvento; +import br.com.swconsultoria.nfe.schema.eventoGenerico.TEnvEvento; +import br.com.swconsultoria.nfe.schema.eventoGenerico.TRetEnvEvento; +import br.com.swconsultoria.nfe.util.ConstantesUtil; +import br.com.swconsultoria.nfe.util.EventoGenericoUtil; +import br.com.swconsultoria.nfe.util.RetornoUtil; + +import java.time.LocalDateTime; + +/** + * @author Samuel Oliveira + */ +public class EventoGenerico { + + public static void main(String[] args) { + + try { + + // Inicia As Configurações + ConfiguracoesNfe config = ConfiguracaoTeste.iniciaConfiguracoes(EstadosEnum.GO, AmbienteEnum.HOMOLOGACAO); + + //Dados Basicos Evento + Evento generico = new Evento(); + generico.setChave("52250810732644000128550010000927491462345823"); + generico.setCnpj("10732644000128"); + generico.setSequencia(2); + generico.setDataEvento(LocalDateTime.now()); + + //Monta Eventos da Receita, Aqui pode ser qualquer um. + //Abaixo Exemplo do 112110 + DetEvento detEvento = new DetEvento(); + detEvento.setVersao(ConstantesUtil.VERSAO.EVENTO_GENERICO); + detEvento.setDescEvento("Informação de efetivo pagamento integral para liberar crédito presumido do adquirente"); + detEvento.setCOrgaoAutor(config.getEstado().getCodigoUF()); + detEvento.setTpAutor("1"); + detEvento.setVerAplic("v4.00.46"); + detEvento.setIndQuitacao("1"); + generico.setDetEvento(detEvento); + + //Monta o Evento Generico + TEnvEvento enviEvento = EventoGenericoUtil.montaEvento(generico,DetEvento.class, EventosEnum.PAGAMENTO_INTEGRAL_CREDITO_PRESUMIDO, config); + + //Envia o Evento Generico + TRetEnvEvento retorno = Nfe.eventoGenerico(config, enviEvento, true); + + //Valida o Retorno do Cancelamento + RetornoUtil.validaEventoGenerico(retorno); + + //Resultado + System.out.println(); + retorno.getRetEvento().forEach( resultado -> { + System.out.println("# Chave: " + resultado.getInfEvento().getChNFe()); + System.out.println("# Status: " + resultado.getInfEvento().getCStat() + " - " + resultado.getInfEvento().getXMotivo()); + System.out.println("# Protocolo: " + resultado.getInfEvento().getNProt()); + }); + + //Cria ProcEvento Generico + String proc = EventoGenericoUtil.criaProcEventoGenerico(config, enviEvento, retorno.getRetEvento().get(0)); + System.out.println(); + System.out.println("# ProcEvento : " + proc); + + } catch (Exception e) { + System.err.println(); + System.err.println("# Erro: "+e.getMessage()); + } + + } + +} From 7fc87f48c18b3f1c1dacd3559e5ce1e765998303 Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Sun, 7 Dec 2025 01:53:35 -0300 Subject: [PATCH 07/20] Adicionado Classe util que calcula os dados do IBSCBS --- CHANGELOG.md | 5 +- README.md | 7 +- schemas.zip | Bin 161752 -> 185207 bytes .../swconsultoria/nfe/ConsultaTributacao.java | 4 +- .../nfe/util/EventoGenericoUtil.java | 3 +- .../swconsultoria/nfe/util/IbsCbsUtil.java | 374 ++++++++++++++++++ .../swconsultoria/nfe/util/ObjetoUtil.java | 31 +- .../nfe/util/XmlImpostoUtil.java | 219 ++++++++++ .../nfe/exemplos/CalculosIbsCbsTeste.java | 82 ++++ ...Generico.java => EventoGenericoTeste.java} | 2 +- 10 files changed, 716 insertions(+), 11 deletions(-) create mode 100644 src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java create mode 100644 src/main/java/br/com/swconsultoria/nfe/util/XmlImpostoUtil.java create mode 100644 src/test/java/br/com/swconsultoria/nfe/exemplos/CalculosIbsCbsTeste.java rename src/test/java/br/com/swconsultoria/nfe/exemplos/{EventoGenerico.java => EventoGenericoTeste.java} (98%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a93beb6..7b864ac6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ # Notas de versão -- Atualizado Schemas PL.010b (v1.30) -- Adicionado novos eventos da reforma Tributaria \ No newline at end of file +- Atualizado Schemas PL.010b (v1.30) **CASO USE VALIDACAO ATUALIZE A PASTA SCHEMAS** +- Adicionado novos eventos da reforma Tributaria (Ver exemplo em: https://github.com/Samuel-Oliveira/Java_NFe/blob/master/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java) +- Adicionado ao projeto o calculo e preenchimento automatico do IBSCBS dos Itens e do Total (Ver exemplo em: https://github.com/Samuel-Oliveira/Java_NFe/blob/master/src/test/java/br/com/swconsultoria/nfe/exemplos/CalculosIbsCbsTeste.java) \ No newline at end of file diff --git a/README.md b/README.md index 7c13f821..0b00f873 100644 --- a/README.md +++ b/README.md @@ -45,11 +45,12 @@ ________________________________________________________________________________ # Historico de Versões ## v4.00.46 - 06/12/2025 - Schemas PL.010b (v1.30) -- Atualizado Schemas PL.010b (v1.30) -- Adicionado novos eventos da reforma Tributaria (Ver exemplo em: https://github.com/Samuel-Oliveira/Java_NFe/blob/master/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenerico.java) +- Atualizado Schemas PL.010b (v1.30) **CASO USE VALIDACAO ATUALIZE A PASTA SCHEMAS** +- Adicionado novos eventos da reforma Tributaria (Ver exemplo em: https://github.com/Samuel-Oliveira/Java_NFe/blob/master/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java) +- Adicionado ao projeto o calculo e preenchimento automatico do IBSCBS dos Itens e do Total (Ver exemplo em: https://github.com/Samuel-Oliveira/Java_NFe/blob/master/src/test/java/br/com/swconsultoria/nfe/exemplos/CalculosIbsCbsTeste.java) ## v4.00.45 - 09/11/2025 - Schemas PL.010b (v1.1) -- Adicionado Conculta ao JSON dos CST/Cclasstrib do IBSCBS +- Adicionado Conculta ao JSON dos CST/Cclasstrib do IBSCBS (Ver exemplo em: https://github.com/Samuel-Oliveira/Java_NFe/blob/master/src/test/java/br/com/swconsultoria/nfe/exemplos/ConsultaTributacaoTeste.java) ## v4.00.44 - 28/10/2025 - Schemas PL.010b (v1.1) - Correcao sequencia Manifestacao Util diff --git a/schemas.zip b/schemas.zip index 3858db0db3a4e7142b4b3409cfa6db49992ca7a0..7c43a493baea77a9ae45d3b8e468cbf484f39b6e 100644 GIT binary patch delta 65744 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%0D|y;1goULT%l!PdG{BF5BjP?cm9w9AmWLOy*# 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 M7z|wj8p^Q$0aIuqasU7T diff --git a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java index 0a950af3..110b7ba3 100644 --- a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java +++ b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java @@ -458,7 +458,7 @@ private static String getJsonNodeType(JsonNode node) { return "Unknown"; } - private static T convertJsonToObject(String json, Class clazz) throws NfeException { + public static T convertJsonToObject(String json, Class clazz) throws NfeException { try { log.info("[ConsultaTributacao] Convertendo JSON para " + clazz.getSimpleName()); return MAPPER.readValue(json, clazz); @@ -468,7 +468,7 @@ private static T convertJsonToObject(String json, Class clazz) throws Nfe } } - private static T convertJsonToObject(String json, TypeReference typeRef) throws NfeException { + public static T convertJsonToObject(String json, TypeReference typeRef) throws NfeException { try { log.info("[ConsultaTributacao] Convertendo JSON para tipo complexo"); return MAPPER.readValue(json, typeRef); diff --git a/src/main/java/br/com/swconsultoria/nfe/util/EventoGenericoUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/EventoGenericoUtil.java index 513b9fd2..7814500e 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/EventoGenericoUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/EventoGenericoUtil.java @@ -88,7 +88,8 @@ public static String criaProcEventoGenerico(ConfiguracoesNfe config, TEnvEvento String xml = XmlNfeUtil.objectToXml(enviEvento, config.getEncode()); xml = xml.replace(" xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\"", "") - .replace(" listaCstIbsCbs; + private final DocumentoEnum documento; + private final Map mapTotais = new HashMap<>(); + + private ClassificacaoTributariaDTO classTribIbsCbs; + private CstDTO cstIbsCbs; + private ClassificacaoTributariaDTO classTribIbsCbsTribRegular; + private CstDTO cstIbsCbsTribRegular; + + private BigDecimal pAliqIbsUf = new BigDecimal("0.1"); + private BigDecimal pAliqIbsMun = BigDecimal.ZERO; + private BigDecimal pAliqCbs = new BigDecimal("0.9"); + private BigDecimal baseCalculo = BigDecimal.ZERO; + + public void setpAliqIbsUf(BigDecimal pAliqIbsUf) { + this.pAliqIbsUf = pAliqIbsUf; + } + + public void setpAliqIbsMun(BigDecimal pAliqIbsMun) { + this.pAliqIbsMun = pAliqIbsMun; + } + + public void setpAliqCbs(BigDecimal pAliqCbs) { + this.pAliqCbs = pAliqCbs; + } + + public IbsCbsUtil(@NonNull List listaCstIbsCbs, @NonNull DocumentoEnum documento) { + this.listaCstIbsCbs = listaCstIbsCbs; + this.documento = documento; + inicializarTotais(); + } + + public IbsCbsUtil(@NonNull String json, @NonNull DocumentoEnum documento) throws NfeException { + this.listaCstIbsCbs = ConsultaTributacao.convertJsonToObject(json, new TypeReference>() {}); + this.documento = documento; + inicializarTotais(); + } + + private void inicializarTotais() { + mapTotais.put(TOTAL_BC_IBS_CBS, BigDecimal.ZERO); + mapTotais.put(TOTAL_IBS_UF, BigDecimal.ZERO); + mapTotais.put(TOTAL_IBS_MUN, BigDecimal.ZERO); + mapTotais.put(TOTAL_CBS, BigDecimal.ZERO); + } + + public TTribNFe montaImpostosDet(String cclassTrib, TNFe.InfNFe.Det det) throws NfeException { + return montaImpostosDet(cclassTrib, det, null); + } + + public TTribNFe montaImpostosDet(String cclassTrib, TNFe.InfNFe.Det det, String cclassTribRegular) throws NfeException { + filtraCClasstrib(cclassTrib, cclassTribRegular); + validaClassTrib(cclassTrib); + calcularBaseCalculoIBSCBS(det); + + TTribNFe ibsCbs = new TTribNFe(); + ibsCbs.setCST(cstIbsCbs.getCst()); + ibsCbs.setCClassTrib(classTribIbsCbs.getCClassTrib()); + + if (deveMontarGrupoIBSCBS()) { + ibsCbs.setGIBSCBS(montarGrupoIBSCBS()); + } + + return ibsCbs; + } + + private boolean deveMontarGrupoIBSCBS() { + return Boolean.TRUE.equals(cstIbsCbs.getIndIBSCBS()) && + (cstIbsCbs.getIndIBSCBSMono() || cstIbsCbs.getIndDif() || + cstIbsCbs.getIndTransfCred() || classTribIbsCbs.getIndRedutorBC()); + } + + private TCIBS montarGrupoIBSCBS() { + TCIBS gIBSCBS = new TCIBS(); + gIBSCBS.setVBC(ObjetoUtil.getValor2Casas(baseCalculo)); + + TCIBS.GIBSUF gIBSUF = criarGIBSUF(); + TCIBS.GIBSMun gIBSMun = criarGIBSMun(); + TCIBS.GCBS gCBS = criarGCBS(); + + gIBSCBS.setGIBSUF(gIBSUF); + gIBSCBS.setGIBSMun(gIBSMun); + gIBSCBS.setGCBS(gCBS); + gIBSCBS.setVIBS(ObjetoUtil.getValor2Casas( + new BigDecimal(gIBSUF.getVIBSUF()).add(new BigDecimal(gIBSMun.getVIBSMun())))); + + if (Boolean.TRUE.equals(classTribIbsCbs.getIndTribRegular())) { + gIBSCBS.setGTribRegular(criarGTribRegular()); + } + + atualizarTotais(gIBSUF, gIBSMun, gCBS); + return gIBSCBS; + } + + private void atualizarTotais(TCIBS.GIBSUF gIBSUF, TCIBS.GIBSMun gIBSMun, TCIBS.GCBS gCBS) { + mapTotais.merge(TOTAL_BC_IBS_CBS, baseCalculo, BigDecimal::add); + mapTotais.merge(TOTAL_IBS_UF, new BigDecimal(gIBSUF.getVIBSUF()), BigDecimal::add); + mapTotais.merge(TOTAL_IBS_MUN, new BigDecimal(gIBSMun.getVIBSMun()), BigDecimal::add); + mapTotais.merge(TOTAL_CBS, new BigDecimal(gCBS.getVCBS()), BigDecimal::add); + } + + private void filtraCClasstrib(String cclassTrib, String cclassTribRegular) { + buscarCstEClassificacao(cclassTrib).ifPresent(entry -> { + cstIbsCbs = entry.getKey(); + classTribIbsCbs = entry.getValue(); + }); + + if (cclassTribRegular != null && !cclassTribRegular.isEmpty()) { + buscarCstEClassificacao(cclassTribRegular).ifPresent(entry -> { + cstIbsCbsTribRegular = entry.getKey(); + classTribIbsCbsTribRegular = entry.getValue(); + }); + } + } + + private Optional> buscarCstEClassificacao(String cclassTrib) { + return listaCstIbsCbs.stream() + .flatMap(cst -> cst.getClassificacoesTributarias().stream() + .map(classTrib -> new AbstractMap.SimpleEntry<>(cst, classTrib))) + .filter(entry -> entry.getValue().getCClassTrib().equals(cclassTrib)) + .findFirst(); + } + + private void validaClassTrib(String cclassTrib) throws NfeException { + if (classTribIbsCbs == null) { + throw new NfeException("CClassTrib inválido ou não encontrado: " + cclassTrib); + } + + if (documento.equals(DocumentoEnum.NFE) && Boolean.FALSE.equals(classTribIbsCbs.getIndNFe())) { + throw new NfeException("CClassTrib não pode ser utilizado para NFe: " + cclassTrib); + } + + if (documento.equals(DocumentoEnum.NFCE) && Boolean.FALSE.equals(classTribIbsCbs.getIndNFCe())) { + throw new NfeException("CClassTrib não pode ser utilizado para NFCe: " + cclassTrib); + } + + if (Boolean.TRUE.equals(classTribIbsCbs.getIndTribRegular()) && classTribIbsCbsTribRegular == null) { + throw new NfeException("Obrigatório informar Tributação Regular para CClassTrib: " + cclassTrib); + } + } + + private TCIBS.GIBSUF criarGIBSUF() { + return criarGrupoImposto( + pAliqIbsUf, + classTribIbsCbs.getPRedIBS(), + TCIBS.GIBSUF::new, + TCIBS.GIBSUF::setPIBSUF, + TCIBS.GIBSUF::setGRed, + TCIBS.GIBSUF::setVIBSUF + ); + } + + private TCIBS.GIBSMun criarGIBSMun() { + return criarGrupoImposto( + pAliqIbsMun, + classTribIbsCbs.getPRedIBS(), + TCIBS.GIBSMun::new, + TCIBS.GIBSMun::setPIBSMun, + TCIBS.GIBSMun::setGRed, + TCIBS.GIBSMun::setVIBSMun + ); + } + + private TCIBS.GCBS criarGCBS() { + return criarGrupoImposto( + pAliqCbs, + classTribIbsCbs.getPRedCBS(), + TCIBS.GCBS::new, + TCIBS.GCBS::setPCBS, + TCIBS.GCBS::setGRed, + TCIBS.GCBS::setVCBS + ); + } + + @FunctionalInterface + private interface GrupoImpostoFactory { + T create(); + } + + @FunctionalInterface + private interface AliquotaSetter { + void set(T grupo, String valor); + } + + @FunctionalInterface + private interface RedutorSetter { + void set(T grupo, TRed redutor); + } + + @FunctionalInterface + private interface ValorSetter { + void set(T grupo, String valor); + } + + private T criarGrupoImposto( + BigDecimal aliqPadrao, + BigDecimal percentualReducao, + GrupoImpostoFactory factory, + AliquotaSetter aliqSetter, + RedutorSetter redSetter, + ValorSetter valorSetter) { + + T grupo = factory.create(); + BigDecimal aliq = Boolean.TRUE.equals(classTribIbsCbs.getIndTribRegular()) + ? BigDecimal.ZERO + : ObjetoUtil.getOrZero(aliqPadrao); + + aliqSetter.set(grupo, ObjetoUtil.getValor4Casas(aliq)); + + BigDecimal percentRed = ObjetoUtil.getOrZero(percentualReducao); + BigDecimal aliqEfet = aliq; + + if (Boolean.TRUE.equals(cstIbsCbs.getIndRedAliq()) && + percentRed.compareTo(BigDecimal.ZERO) > 0 && + Boolean.FALSE.equals(classTribIbsCbs.getIndTribRegular())) { + + TRed gRed = criarRedutor(percentRed, aliq); + redSetter.set(grupo, gRed); + aliqEfet = new BigDecimal(gRed.getPAliqEfet()); + } + + BigDecimal valor = calcularValorImposto(aliqEfet); + valorSetter.set(grupo, ObjetoUtil.getValor2Casas(valor)); + + return grupo; + } + + private BigDecimal calcularValorImposto(BigDecimal aliquota) { + return baseCalculo.multiply(aliquota.divide(CEM, SCALE_5, RoundingMode.HALF_UP)); + } + + private TTribRegular criarGTribRegular() { + TTribRegular gTribRegular = new TTribRegular(); + gTribRegular.setCSTReg(cstIbsCbsTribRegular.getCst()); + gTribRegular.setCClassTribReg(classTribIbsCbsTribRegular.getCClassTrib()); + + configurarTributoRegular(gTribRegular, pAliqIbsUf, + TTribRegular::setPAliqEfetRegIBSUF, TTribRegular::setVTribRegIBSUF); + configurarTributoRegular(gTribRegular, pAliqIbsMun, + TTribRegular::setPAliqEfetRegIBSMun, TTribRegular::setVTribRegIBSMun); + configurarTributoRegular(gTribRegular, pAliqCbs, + TTribRegular::setPAliqEfetRegCBS, TTribRegular::setVTribRegCBS); + + return gTribRegular; + } + + private void configurarTributoRegular( + TTribRegular gTribRegular, + BigDecimal aliquota, + java.util.function.BiConsumer aliqSetter, + java.util.function.BiConsumer valorSetter) { + + BigDecimal pAliqEfet = ObjetoUtil.getOrZero(aliquota); + aliqSetter.accept(gTribRegular, ObjetoUtil.getValor4Casas(pAliqEfet)); + + BigDecimal valor = calcularValorImposto(pAliqEfet); + valorSetter.accept(gTribRegular, ObjetoUtil.getValor2Casas(valor)); + } + + private static TRed criarRedutor(BigDecimal percentualReducao, BigDecimal aliqOriginal) { + TRed gRed = new TRed(); + gRed.setPRedAliq(ObjetoUtil.getValor4Casas(percentualReducao)); + + BigDecimal aliqEfet = aliqOriginal.multiply( + BigDecimal.ONE.subtract(percentualReducao.divide(BigDecimal.valueOf(100), 5, RoundingMode.HALF_UP))); + gRed.setPAliqEfet(ObjetoUtil.getValor4Casas(aliqEfet)); + + return gRed; + } + + @SuppressWarnings("unchecked") + private void calcularBaseCalculoIBSCBS(TNFe.InfNFe.Det det) { + BigDecimal vProd = ObjetoUtil.getBigDecimalOrZero(det.getProd().getVProd()); + BigDecimal vFrete = ObjetoUtil.getBigDecimalOrZero(det.getProd().getVFrete()); + BigDecimal vSeg = ObjetoUtil.getBigDecimalOrZero(det.getProd().getVSeg()); + BigDecimal vOutro = ObjetoUtil.getBigDecimalOrZero(det.getProd().getVOutro()); + BigDecimal vDesc = ObjetoUtil.getBigDecimalOrZero(det.getProd().getVDesc()); + + List> impostos = det.getImposto().getContent(); + + baseCalculo = vProd + .add(vFrete) + .add(vSeg) + .add(vOutro) + .subtract(vDesc) + .subtract(XmlImpostoUtil.getVPIS(impostos)) + .subtract(XmlImpostoUtil.getVCOFINS(impostos)) + .subtract(XmlImpostoUtil.getVICMS(impostos)) + .subtract(XmlImpostoUtil.getVICMSUFDest(impostos)) + .subtract(XmlImpostoUtil.getVFCP(impostos)) + .subtract(XmlImpostoUtil.getVFCPUFDest(impostos)) + .subtract(XmlImpostoUtil.getVICMSMono(impostos)) + .subtract(XmlImpostoUtil.getVISSQN(impostos)); + } + + public BigDecimal calculaVnfTot(String vnf) { + return new BigDecimal(vnf) + .add(mapTotais.getOrDefault(TOTAL_IBS_UF, BigDecimal.ZERO)) + .add(mapTotais.getOrDefault(TOTAL_IBS_MUN, BigDecimal.ZERO)) + .add(mapTotais.getOrDefault(TOTAL_CBS, BigDecimal.ZERO)); + } + + public TIBSCBSMonoTot preencheTotaisIbsCsb() { + TIBSCBSMonoTot totalIbsCbs = new TIBSCBSMonoTot(); + totalIbsCbs.setVBCIBSCBS(ObjetoUtil.getValor2Casas(mapTotais.getOrDefault(TOTAL_BC_IBS_CBS, BigDecimal.ZERO))); + totalIbsCbs.setGIBS(criarTotaisIBS()); + totalIbsCbs.setGCBS(criarTotaisCBS()); + return totalIbsCbs; + } + + private TIBSCBSMonoTot.GIBS criarTotaisIBS() { + TIBSCBSMonoTot.GIBS gIbs = new TIBSCBSMonoTot.GIBS(); + gIbs.setGIBSUF(criarGIBSUFTotal()); + gIbs.setGIBSMun(criarGIBSMunTotal()); + + BigDecimal totalIBS = mapTotais.getOrDefault(TOTAL_IBS_UF, BigDecimal.ZERO) + .add(mapTotais.getOrDefault(TOTAL_IBS_MUN, BigDecimal.ZERO)); + gIbs.setVIBS(ObjetoUtil.getValor2Casas(totalIBS)); + gIbs.setVCredPres("0.00"); + gIbs.setVCredPresCondSus("0.00"); + + return gIbs; + } + + private TIBSCBSMonoTot.GIBS.GIBSUF criarGIBSUFTotal() { + TIBSCBSMonoTot.GIBS.GIBSUF gIbsUF = new TIBSCBSMonoTot.GIBS.GIBSUF(); + gIbsUF.setVDif("0.00"); + gIbsUF.setVDevTrib("0.00"); + gIbsUF.setVIBSUF(ObjetoUtil.getValor2Casas(mapTotais.getOrDefault(TOTAL_IBS_UF, BigDecimal.ZERO))); + return gIbsUF; + } + + private TIBSCBSMonoTot.GIBS.GIBSMun criarGIBSMunTotal() { + TIBSCBSMonoTot.GIBS.GIBSMun gIbsMun = new TIBSCBSMonoTot.GIBS.GIBSMun(); + gIbsMun.setVDif("0.00"); + gIbsMun.setVDevTrib("0.00"); + gIbsMun.setVIBSMun(ObjetoUtil.getValor2Casas(mapTotais.getOrDefault(TOTAL_IBS_MUN, BigDecimal.ZERO))); + return gIbsMun; + } + + private TIBSCBSMonoTot.GCBS criarTotaisCBS() { + TIBSCBSMonoTot.GCBS gCbs = new TIBSCBSMonoTot.GCBS(); + gCbs.setVDif("0.00"); + gCbs.setVDevTrib("0.00"); + gCbs.setVCBS(ObjetoUtil.getValor2Casas(mapTotais.getOrDefault(TOTAL_CBS, BigDecimal.ZERO))); + gCbs.setVCredPres("0.00"); + gCbs.setVCredPresCondSus("0.00"); + return gCbs; + } +} \ No newline at end of file diff --git a/src/main/java/br/com/swconsultoria/nfe/util/ObjetoUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/ObjetoUtil.java index 8c73a372..70fbab4a 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/ObjetoUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/ObjetoUtil.java @@ -1,10 +1,14 @@ package br.com.swconsultoria.nfe.util; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Collection; import java.util.Optional; public final class ObjetoUtil { + private ObjetoUtil() {} + /** * Verifica se um objeto é vazio. * @@ -16,11 +20,34 @@ public static Optional verifica(T obj) { if (obj == null) return Optional.empty(); if (obj instanceof Collection) - return ((Collection) obj).size() == 0 ? Optional.empty() : Optional.of(obj); + return ((Collection) obj).isEmpty() ? Optional.empty() : Optional.of(obj); final String s = String.valueOf(obj).trim(); - return s.length() == 0 || s.equalsIgnoreCase("null") ? Optional.empty() : Optional.of(obj); + return s.isEmpty() || s.equalsIgnoreCase("null") ? Optional.empty() : Optional.of(obj); + } + + public static BigDecimal getBigDecimalOrZero(String value) { + try { + return value != null ? new BigDecimal(value) : BigDecimal.ZERO; + } catch (Exception e) { + return BigDecimal.ZERO; + } + } + + public static BigDecimal getOrZero(BigDecimal v) { + return v == null ? BigDecimal.ZERO : v; + } + + public static String getValor2Casas(BigDecimal valor) { + return valor.setScale(2, RoundingMode.HALF_UP).toString(); + } + + public static String getValor4Casas(BigDecimal valor) { + if (valor == null) { + return "0.0000"; + } + return valor.setScale(4, RoundingMode.HALF_UP).toString(); } } diff --git a/src/main/java/br/com/swconsultoria/nfe/util/XmlImpostoUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/XmlImpostoUtil.java new file mode 100644 index 00000000..b6230647 --- /dev/null +++ b/src/main/java/br/com/swconsultoria/nfe/util/XmlImpostoUtil.java @@ -0,0 +1,219 @@ +package br.com.swconsultoria.nfe.util; + +import javax.xml.bind.JAXBElement; +import java.math.BigDecimal; +import java.util.List; + +/** + * Classe utilitária para extração dos valores de impostos de uma lista de elementos JAXB + * proveniente do bloco do XML da NFe. + *

+ * Cada método percorre a lista de impostos e busca o valor correspondente de acordo com cada + * tipo de imposto, retornando seu valor como BigDecimal ou BigDecimal.ZERO caso não encontrado. + */ +public class XmlImpostoUtil { + + private XmlImpostoUtil(){} + + /** + * Recupera o valor do PIS (vPIS) do produto. + *

+ * Percorre a lista de elementos de imposto e verifica os diferentes tipos de apuração do PIS. + * Retorna o primeiro valor encontrado, ou BigDecimal.ZERO caso nenhum seja localizado. + * + * @param impostos Lista de elementos JAXB do bloco de impostos do produto. + * @return Valor do PIS (vPIS) ou BigDecimal.ZERO se não houver. + */ + public static BigDecimal getVPIS(List> impostos) { + for (JAXBElement elem : impostos) { + // Verifica se o elemento é do tipo PIS + if (elem.getValue() instanceof br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.PIS) { + br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.PIS pis = + (br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.PIS) elem.getValue(); + // Busca vPIS em cada modalidade possível no XML + if (pis.getPISAliq() != null && pis.getPISAliq().getVPIS() != null) + return new BigDecimal(pis.getPISAliq().getVPIS()); + if (pis.getPISQtde() != null && pis.getPISQtde().getVPIS() != null) + return new BigDecimal(pis.getPISQtde().getVPIS()); + if (pis.getPISOutr() != null && pis.getPISOutr().getVPIS() != null) + return new BigDecimal(pis.getPISOutr().getVPIS()); + } + } + return BigDecimal.ZERO; + } + + /** + * Recupera o valor do COFINS (vCOFINS) do produto. + *

+ * Percorre a lista de elementos de imposto e verifica os diferentes tipos de apuração do COFINS. + * Retorna o primeiro valor encontrado, ou BigDecimal.ZERO caso nenhum seja localizado. + * + * @param impostos Lista de elementos JAXB do bloco de impostos do produto. + * @return Valor do COFINS (vCOFINS) ou BigDecimal.ZERO se não houver. + */ + public static BigDecimal getVCOFINS(List> impostos) { + for (JAXBElement elem : impostos) { + // Verifica se o elemento é do tipo COFINS + if (elem.getValue() instanceof br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.COFINS) { + br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.COFINS cof = + (br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.COFINS) elem.getValue(); + // Busca vCOFINS em cada modalidade possível no XML + if (cof.getCOFINSAliq() != null && cof.getCOFINSAliq().getVCOFINS() != null) + return new BigDecimal(cof.getCOFINSAliq().getVCOFINS()); + if (cof.getCOFINSQtde() != null && cof.getCOFINSQtde().getVCOFINS() != null) + return new BigDecimal(cof.getCOFINSQtde().getVCOFINS()); + if (cof.getCOFINSOutr() != null && cof.getCOFINSOutr().getVCOFINS() != null) + return new BigDecimal(cof.getCOFINSOutr().getVCOFINS()); + } + } + return BigDecimal.ZERO; + } + + /** + * Recupera o valor do ICMS (vICMS) do produto. + *

+ * Percorre todas as possíveis modalidades de ICMS, incluindo regime normal e Simples Nacional, + * e retorna o primeiro valor encontrado. Caso não localize, retorna BigDecimal.ZERO. + * + * @param impostos Lista de elementos JAXB do bloco de impostos do produto. + * @return Valor do ICMS (vICMS) ou BigDecimal.ZERO se não houver. + */ + public static BigDecimal getVICMS(List> impostos) { + for (JAXBElement elem : impostos) { + // Verifica se o elemento é do tipo ICMS + if (elem.getValue() instanceof br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMS) { + br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMS icms = + (br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMS) elem.getValue(); + // Busca vICMS em cada modalidade possível no XML + if (icms.getICMS00() != null && icms.getICMS00().getVICMS() != null) + return new BigDecimal(icms.getICMS00().getVICMS()); + if (icms.getICMS10() != null && icms.getICMS10().getVICMS() != null) + return new BigDecimal(icms.getICMS10().getVICMS()); + if (icms.getICMS20() != null && icms.getICMS20().getVICMS() != null) + return new BigDecimal(icms.getICMS20().getVICMS()); + if (icms.getICMS51() != null && icms.getICMS51().getVICMS() != null) + return new BigDecimal(icms.getICMS51().getVICMS()); + if (icms.getICMS90() != null && icms.getICMS90().getVICMS() != null) + return new BigDecimal(icms.getICMS90().getVICMS()); + if (icms.getICMSSN900() != null && icms.getICMSSN900().getVICMS() != null) + return new BigDecimal(icms.getICMSSN900().getVICMS()); + } + } + return BigDecimal.ZERO; + } + + /** + * Recupera o valor do ICMS de destino (vICMSUFDest), referente à partilha entre estados. + * + * @param impostos Lista de elementos JAXB do bloco de impostos do produto. + * @return Valor do ICMS de destino (vICMSUFDest) ou BigDecimal.ZERO se não houver. + */ + public static BigDecimal getVICMSUFDest(List> impostos) { + for (JAXBElement elem : impostos) { + // Verifica se o elemento é do tipo ICMSUFDest + if (elem.getValue() instanceof br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMSUFDest) { + br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMSUFDest icmsUfDest = + (br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMSUFDest) elem.getValue(); + if (icmsUfDest.getVICMSUFDest() != null) + return new BigDecimal(icmsUfDest.getVICMSUFDest()); + } + } + return BigDecimal.ZERO; + } + + /** + * Recupera o valor do FCP (Fundo de Combate à Pobreza) do ICMS (vFCP). + *

+ * Procura o valor do FCP nas modalidades disponíveis do ICMS. + * + * @param impostos Lista de elementos JAXB do bloco de impostos do produto. + * @return Valor do FCP (vFCP) ou BigDecimal.ZERO se não houver. + */ + public static BigDecimal getVFCP(List> impostos) { + for (JAXBElement elem : impostos) { + // Verifica se o elemento é do tipo ICMS + if (elem.getValue() instanceof br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMS) { + br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMS icms = + (br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMS) elem.getValue(); + // Busca vFCP em modalidades possíveis + if (icms.getICMS00() != null && icms.getICMS00().getVFCP() != null) + return new BigDecimal(icms.getICMS00().getVFCP()); + if (icms.getICMS10() != null && icms.getICMS10().getVFCP() != null) + return new BigDecimal(icms.getICMS10().getVFCP()); + if (icms.getICMS20() != null && icms.getICMS20().getVFCP() != null) + return new BigDecimal(icms.getICMS20().getVFCP()); + if (icms.getICMS51() != null && icms.getICMS51().getVFCP() != null) + return new BigDecimal(icms.getICMS51().getVFCP()); + if (icms.getICMS90() != null && icms.getICMS90().getVFCP() != null) + return new BigDecimal(icms.getICMS90().getVFCP()); + } + } + return BigDecimal.ZERO; + } + + /** + * Recupera o valor do FCP de destino (vFCPUFDest), referente ao Fundo de Combate à Pobreza + * na partilha entre estados. + * + * @param impostos Lista de elementos JAXB do bloco de impostos do produto. + * @return Valor do FCP de destino (vFCPUFDest) ou BigDecimal.ZERO se não houver. + */ + public static BigDecimal getVFCPUFDest(List> impostos) { + for (JAXBElement elem : impostos) { + // Verifica se o elemento é do tipo ICMSUFDest + if (elem.getValue() instanceof br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMSUFDest) { + br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMSUFDest icmsUfDest = + (br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMSUFDest) elem.getValue(); + if (icmsUfDest.getVFCPUFDest() != null) + return new BigDecimal(icmsUfDest.getVFCPUFDest()); + } + } + return BigDecimal.ZERO; + } + + /** + * Recupera o valor do ICMS monofásico. + * + * @param impostos Lista de elementos JAXB do bloco de impostos do produto. + * @return Valor do ICMS Monofásico ou BigDecimal.ZERO se não houver. + * + * OBS: Este método está como placeholder, ajuste conforme o schema e uso na sua empresa. + */ + public static BigDecimal getVICMSMono(List> impostos) { + for (JAXBElement elem : impostos) { + // Verifica se o elemento é do tipo ICMS + if (elem.getValue() instanceof br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMS) { + br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMS icms = + (br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ICMS) elem.getValue(); + // Busca vICMS em cada modalidade possível no XML + if (icms.getICMS02() != null && icms.getICMS02().getVICMSMono() != null) + return new BigDecimal(icms.getICMS02().getVICMSMono()); + if (icms.getICMS15() != null && icms.getICMS15().getVICMSMono() != null) + return new BigDecimal(icms.getICMS15().getVICMSMono()); + if (icms.getICMS53() != null && icms.getICMS53().getVICMSMono() != null) + return new BigDecimal(icms.getICMS53().getVICMSMono()); + } + } + return BigDecimal.ZERO; + } + + /** + * Recupera o valor do ISSQN (vISSQN) do produto, relacionado ao serviço. + * + * @param impostos Lista de elementos JAXB do bloco de impostos do produto. + * @return Valor do ISSQN ou BigDecimal.ZERO se não houver. + */ + public static BigDecimal getVISSQN(List> impostos) { + for (JAXBElement elem : impostos) { + // Verifica se o elemento é do tipo ISSQN + if (elem.getValue() instanceof br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ISSQN) { + br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ISSQN issqn = + (br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe.InfNFe.Det.Imposto.ISSQN) elem.getValue(); + if (issqn.getVISSQN() != null) + return new BigDecimal(issqn.getVISSQN()); + } + } + return BigDecimal.ZERO; + } + +} diff --git a/src/test/java/br/com/swconsultoria/nfe/exemplos/CalculosIbsCbsTeste.java b/src/test/java/br/com/swconsultoria/nfe/exemplos/CalculosIbsCbsTeste.java new file mode 100644 index 00000000..989ae3d7 --- /dev/null +++ b/src/test/java/br/com/swconsultoria/nfe/exemplos/CalculosIbsCbsTeste.java @@ -0,0 +1,82 @@ +/** + * + */ +package br.com.swconsultoria.nfe.exemplos; + +import br.com.swconsultoria.nfe.Nfe; +import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe; +import br.com.swconsultoria.nfe.dom.enuns.AmbienteEnum; +import br.com.swconsultoria.nfe.dom.enuns.DocumentoEnum; +import br.com.swconsultoria.nfe.dom.enuns.EstadosEnum; +import br.com.swconsultoria.nfe.schema_4.enviNFe.TEnviNFe; +import br.com.swconsultoria.nfe.schema_4.enviNFe.TIBSCBSMonoTot; +import br.com.swconsultoria.nfe.schema_4.enviNFe.TNFe; +import br.com.swconsultoria.nfe.schema_4.enviNFe.TTribNFe; +import br.com.swconsultoria.nfe.util.IbsCbsUtil; +import br.com.swconsultoria.nfe.util.ObjetoUtil; +import br.com.swconsultoria.nfe.util.XmlNfeUtil; + +import javax.xml.bind.JAXBElement; +import javax.xml.namespace.QName; +import java.math.BigDecimal; + +/** + * @author Samuel Oliveira + */ +public class CalculosIbsCbsTeste { + + public static void main(String[] args) { + + try { + + // Inicia As Configurações + ConfiguracoesNfe config = ConfiguracaoTeste.iniciaConfiguracoes(EstadosEnum.GO, AmbienteEnum.HOMOLOGACAO); + + // Aqui usei vou usar um XML pronto para n precisar montar a nota, mas nao eh necessario! + String xml = XmlNfeUtil.leXml("d:/teste/envinfe.xml"); + TEnviNFe enviNFe = XmlNfeUtil.xmlToObject(xml, TEnviNFe.class); + + //Carrega Json TabelaCclasstrib + //Ver metodo ConsultaTributacao Teste + String json = XmlNfeUtil.leXml("d:/teste/ibscbs.json"); + + //Instancia a Classe Util de Calculo + IbsCbsUtil ibsCbsUtil = new IbsCbsUtil(json, DocumentoEnum.NFE); + + //Chama a classe util para cada item + for (TNFe.InfNFe.Det det : enviNFe.getNFe().get(0).getInfNFe().getDet()) { + + // Aqui vc deve passar o codigo do cclassTrib para Operacao desse item + TTribNFe ibsCbs = ibsCbsUtil.montaImpostosDet("000001", det); + + // Exemplo com Trib Regular + // TTribNFe ibsCbs = ibsCbsUtil.montaImpostosDet("550001", det, "000001"); + + JAXBElement ibsCbsElement = new JAXBElement<>(new QName("IBSCBS"), TTribNFe.class, ibsCbs); + det.getImposto().getContent().add(ibsCbsElement); + + } + + //Preenche vNfTot : ATENCAO ALGUMAS SEFAZ RECUSAO O PREENCHIMENTO + BigDecimal vNfTot = ibsCbsUtil.calculaVnfTot(enviNFe.getNFe().get(0).getInfNFe().getTotal().getICMSTot().getVNF()); + enviNFe.getNFe().get(0).getInfNFe().getTotal().setVNFTot(ObjetoUtil.getValor2Casas(vNfTot)); + + //Por fim monta os calculos + TIBSCBSMonoTot totaisIbsCsb = ibsCbsUtil.preencheTotaisIbsCsb(); + enviNFe.getNFe().get(0).getInfNFe().getTotal().setIBSCBSTot(totaisIbsCsb); + + // Monta, Assina e Valida o XML + enviNFe = Nfe.montaNfe(config, enviNFe, true); + + System.out.println("XML COM IBSCBS: "+XmlNfeUtil.objectToXml(enviNFe)); + + // Aqui segue com o ENVIO... + + } catch (Exception e) { + System.err.println(); + System.err.println("# Erro: "+e.getMessage()); + } + + } + +} diff --git a/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenerico.java b/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java similarity index 98% rename from src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenerico.java rename to src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java index eac114e9..41402f18 100644 --- a/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenerico.java +++ b/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java @@ -21,7 +21,7 @@ /** * @author Samuel Oliveira */ -public class EventoGenerico { +public class EventoGenericoTeste { public static void main(String[] args) { From 4bd7659544654d877574d318afafce08f23b8b0e Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Sun, 7 Dec 2025 01:55:04 -0300 Subject: [PATCH 08/20] Finalizado versao 4.00.46 --- README.md | 6 +++--- pom.xml | 2 +- .../java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0b00f873..3e06fa09 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Java-NFe [![MIT License](https://img.shields.io/github/license/Samuel-Oliveira/Java_NFe.svg) ](https://github.com/Samuel-Oliveira/Java_NFe/blob/master/LICENSE) [![Maven Central](https://img.shields.io/maven-central/v/br.com.swconsultoria/java-nfe.svg?label=Maven%20Central)](https://search.maven.org/artifact/br.com.swconsultoria/java-nfe/4.00.45/jar) +# Java-NFe [![MIT License](https://img.shields.io/github/license/Samuel-Oliveira/Java_NFe.svg) ](https://github.com/Samuel-Oliveira/Java_NFe/blob/master/LICENSE) [![Maven Central](https://img.shields.io/maven-central/v/br.com.swconsultoria/java-nfe.svg?label=Maven%20Central)](https://search.maven.org/artifact/br.com.swconsultoria/java-nfe/4.00.46/jar) Biblioteca Java para consumo do WebService de NFe/NFCe ### Powered by @@ -22,7 +22,7 @@ Para Iniciar : br.com.swconsultoria java-nfe - 4.00.45 + 4.00.46 ``` @@ -34,7 +34,7 @@ repositories { } } dependencies { - implementation "br.com.swconsultoria:java-nfe:4.00.45" + implementation "br.com.swconsultoria:java-nfe:4.00.46" } ``` diff --git a/pom.xml b/pom.xml index ac027aa1..43493902 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ br.com.swconsultoria java-nfe - 4.00.45 + 4.00.46 Java_NFe Api java para consumo do webService de nota fiscal eletronica https://github.com/Samuel-Oliveira/Java_NFe diff --git a/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java b/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java index 11d0e76f..4d157844 100644 --- a/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java +++ b/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java @@ -109,8 +109,8 @@ public static ConfiguracoesNfe criarConfiguracoes(EstadosEnum estado, AmbienteEn log.info(String.format("JAVA-NFE | Samuel Oliveira | samuel@swconsultoria.com.br " + "| VERSAO=%s | DATA_VERSAO=%s | PASTA_SCHEMAS=%s | AMBIENTE=%s | ESTADO=%s", - "4.00.45", - "09/11/2025", + "4.00.46", + "07/12/2025", pastaSchemas, ambiente, estado.getNome().toUpperCase())); From d644aaf689d54edd859c30ab1802ca14872b0446 Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Mon, 8 Dec 2025 13:55:55 -0300 Subject: [PATCH 09/20] Correcao de indRedBc --- .../com/swconsultoria/nfe/dto/ClassificacaoTributariaDTO.java | 3 --- src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/br/com/swconsultoria/nfe/dto/ClassificacaoTributariaDTO.java b/src/main/java/br/com/swconsultoria/nfe/dto/ClassificacaoTributariaDTO.java index ff3807e1..b6739578 100644 --- a/src/main/java/br/com/swconsultoria/nfe/dto/ClassificacaoTributariaDTO.java +++ b/src/main/java/br/com/swconsultoria/nfe/dto/ClassificacaoTributariaDTO.java @@ -33,9 +33,6 @@ public class ClassificacaoTributariaDTO implements Serializable { @JsonProperty("pRedCBS") private BigDecimal pRedCBS; - @JsonProperty("IndRedutorBC") - private Boolean indRedutorBC; - @JsonProperty("IndTribRegular") private Boolean indTribRegular; diff --git a/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java index b641066c..a85b3ef6 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java @@ -91,7 +91,7 @@ public TTribNFe montaImpostosDet(String cclassTrib, TNFe.InfNFe.Det det, String private boolean deveMontarGrupoIBSCBS() { return Boolean.TRUE.equals(cstIbsCbs.getIndIBSCBS()) && (cstIbsCbs.getIndIBSCBSMono() || cstIbsCbs.getIndDif() || - cstIbsCbs.getIndTransfCred() || classTribIbsCbs.getIndRedutorBC()); + cstIbsCbs.getIndTransfCred() || cstIbsCbs.getIndRedBC()); } private TCIBS montarGrupoIBSCBS() { From cfa30f0d673720e73a1ca47487bd10cef8ee3a47 Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Mon, 8 Dec 2025 17:27:33 -0300 Subject: [PATCH 10/20] Correcao espacos --- .../java/br/com/swconsultoria/nfe/ConsultaTributacao.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java index 110b7ba3..808a95ea 100644 --- a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java +++ b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java @@ -269,7 +269,7 @@ public static ValidationReport validate(ConfiguracoesNfe config, Map * @@ -576,7 +576,7 @@ private static SSLSocketFactory tryResolveSslSocketFactory(ConfiguracoesNfe conf try { java.lang.reflect.Method m = svc.getMethod("getSSLSocketFactory", - Class.forName("br.com.swconsultoria.certificado. Certificado")); + Class.forName("br.com.swconsultoria.certificado.Certificado")); Object res = m.invoke(null, config.getCertificado()); if (res instanceof SSLSocketFactory) { return (SSLSocketFactory) res; From 4cce9ec2829e368bf2c23003563a095b60079dad Mon Sep 17 00:00:00 2001 From: Rodrigo Aguiar Vidal Cananea Date: Mon, 8 Dec 2025 17:36:47 -0300 Subject: [PATCH 11/20] =?UTF-8?q?Corre=C3=A7=C3=B5es=20logica=20de=20valid?= =?UTF-8?q?a=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../br/com/swconsultoria/nfe/util/IbsCbsUtil.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java index b641066c..543e83b6 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java @@ -89,9 +89,11 @@ public TTribNFe montaImpostosDet(String cclassTrib, TNFe.InfNFe.Det det, String } private boolean deveMontarGrupoIBSCBS() { - return Boolean.TRUE.equals(cstIbsCbs.getIndIBSCBS()) && - (cstIbsCbs.getIndIBSCBSMono() || cstIbsCbs.getIndDif() || - cstIbsCbs.getIndTransfCred() || classTribIbsCbs.getIndRedutorBC()); + return Boolean.TRUE.equals(cstIbsCbs.getIndIBSCBS()) + || Boolean.TRUE.equals(cstIbsCbs.getIndIBSCBSMono()) + || Boolean.TRUE.equals(cstIbsCbs.getIndRedAliq()) + || Boolean.TRUE.equals(cstIbsCbs.getIndDif()) + || Boolean.TRUE.equals(cstIbsCbs.getIndTransfCred()); } private TCIBS montarGrupoIBSCBS() { @@ -234,10 +236,7 @@ private T criarGrupoImposto( BigDecimal percentRed = ObjetoUtil.getOrZero(percentualReducao); BigDecimal aliqEfet = aliq; - if (Boolean.TRUE.equals(cstIbsCbs.getIndRedAliq()) && - percentRed.compareTo(BigDecimal.ZERO) > 0 && - Boolean.FALSE.equals(classTribIbsCbs.getIndTribRegular())) { - + if (Boolean.TRUE.equals(cstIbsCbs.getIndRedAliq()) && percentRed.compareTo(BigDecimal.ZERO) > 0) { TRed gRed = criarRedutor(percentRed, aliq); redSetter.set(grupo, gRed); aliqEfet = new BigDecimal(gRed.getPAliqEfet()); @@ -371,4 +370,4 @@ private TIBSCBSMonoTot.GCBS criarTotaisCBS() { gCbs.setVCredPresCondSus("0.00"); return gCbs; } -} \ No newline at end of file +} From fe544e76829d1fd66811833116bd3254a0640853 Mon Sep 17 00:00:00 2001 From: Rodrigo Aguiar Vidal Cananea Date: Mon, 8 Dec 2025 17:37:46 -0300 Subject: [PATCH 12/20] =?UTF-8?q?Corre=C3=A7=C3=A3o=20espa=C3=A7o=20indevi?= =?UTF-8?q?do?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java index 110b7ba3..6c4584ba 100644 --- a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java +++ b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java @@ -576,7 +576,7 @@ private static SSLSocketFactory tryResolveSslSocketFactory(ConfiguracoesNfe conf try { java.lang.reflect.Method m = svc.getMethod("getSSLSocketFactory", - Class.forName("br.com.swconsultoria.certificado. Certificado")); + Class.forName("br.com.swconsultoria.certificado.Certificado")); Object res = m.invoke(null, config.getCertificado()); if (res instanceof SSLSocketFactory) { return (SSLSocketFactory) res; From 7e384dbe466c3c5a2ea7491b062553c4bb6967da Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Wed, 10 Dec 2025 07:33:06 -0300 Subject: [PATCH 13/20] - Correcoes Calculos IBSCBS --- CHANGELOG.md | 4 +--- README.md | 9 ++++++--- pom.xml | 2 +- .../br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java | 4 ++-- .../swconsultoria/nfe/exemplos/EventoGenericoTeste.java | 2 +- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b864ac6..71b1854a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,2 @@ # Notas de versão -- Atualizado Schemas PL.010b (v1.30) **CASO USE VALIDACAO ATUALIZE A PASTA SCHEMAS** -- Adicionado novos eventos da reforma Tributaria (Ver exemplo em: https://github.com/Samuel-Oliveira/Java_NFe/blob/master/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java) -- Adicionado ao projeto o calculo e preenchimento automatico do IBSCBS dos Itens e do Total (Ver exemplo em: https://github.com/Samuel-Oliveira/Java_NFe/blob/master/src/test/java/br/com/swconsultoria/nfe/exemplos/CalculosIbsCbsTeste.java) \ No newline at end of file +- Correcoes Calculos IBSCBS \ No newline at end of file diff --git a/README.md b/README.md index 3e06fa09..d2b6864e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Java-NFe [![MIT License](https://img.shields.io/github/license/Samuel-Oliveira/Java_NFe.svg) ](https://github.com/Samuel-Oliveira/Java_NFe/blob/master/LICENSE) [![Maven Central](https://img.shields.io/maven-central/v/br.com.swconsultoria/java-nfe.svg?label=Maven%20Central)](https://search.maven.org/artifact/br.com.swconsultoria/java-nfe/4.00.46/jar) +# Java-NFe [![MIT License](https://img.shields.io/github/license/Samuel-Oliveira/Java_NFe.svg) ](https://github.com/Samuel-Oliveira/Java_NFe/blob/master/LICENSE) [![Maven Central](https://img.shields.io/maven-central/v/br.com.swconsultoria/java-nfe.svg?label=Maven%20Central)](https://search.maven.org/artifact/br.com.swconsultoria/java-nfe/4.00.47/jar) Biblioteca Java para consumo do WebService de NFe/NFCe ### Powered by @@ -22,7 +22,7 @@ Para Iniciar : br.com.swconsultoria java-nfe - 4.00.46 + 4.00.47 ``` @@ -34,7 +34,7 @@ repositories { } } dependencies { - implementation "br.com.swconsultoria:java-nfe:4.00.46" + implementation "br.com.swconsultoria:java-nfe:4.00.47" } ``` @@ -44,6 +44,9 @@ ________________________________________________________________________________ # Historico de Versões +## v4.00.47 - 10/12/2025 - Schemas PL.010b (v1.30) +- Correcoes calculos IBSCBS + ## v4.00.46 - 06/12/2025 - Schemas PL.010b (v1.30) - Atualizado Schemas PL.010b (v1.30) **CASO USE VALIDACAO ATUALIZE A PASTA SCHEMAS** - Adicionado novos eventos da reforma Tributaria (Ver exemplo em: https://github.com/Samuel-Oliveira/Java_NFe/blob/master/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java) diff --git a/pom.xml b/pom.xml index 43493902..66bbc9b8 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ br.com.swconsultoria java-nfe - 4.00.46 + 4.00.47 Java_NFe Api java para consumo do webService de nota fiscal eletronica https://github.com/Samuel-Oliveira/Java_NFe diff --git a/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java b/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java index 4d157844..c000bc20 100644 --- a/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java +++ b/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java @@ -109,8 +109,8 @@ public static ConfiguracoesNfe criarConfiguracoes(EstadosEnum estado, AmbienteEn log.info(String.format("JAVA-NFE | Samuel Oliveira | samuel@swconsultoria.com.br " + "| VERSAO=%s | DATA_VERSAO=%s | PASTA_SCHEMAS=%s | AMBIENTE=%s | ESTADO=%s", - "4.00.46", - "07/12/2025", + "4.00.47", + "10/12/2025", pastaSchemas, ambiente, estado.getNome().toUpperCase())); diff --git a/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java b/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java index 41402f18..1b7f5b17 100644 --- a/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java +++ b/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java @@ -44,7 +44,7 @@ public static void main(String[] args) { detEvento.setDescEvento("Informação de efetivo pagamento integral para liberar crédito presumido do adquirente"); detEvento.setCOrgaoAutor(config.getEstado().getCodigoUF()); detEvento.setTpAutor("1"); - detEvento.setVerAplic("v4.00.46"); + detEvento.setVerAplic("v4.00.47"); detEvento.setIndQuitacao("1"); generico.setDetEvento(detEvento); From 0e3e61d2421533358cbb8a38c9f4fffb207f0151 Mon Sep 17 00:00:00 2001 From: Fred William Torno Junior Date: Sat, 13 Dec 2025 04:20:58 -0300 Subject: [PATCH 14/20] Fix: SSL error in multithreading mode by using custom protocol and relative URI --- .../com/swconsultoria/nfe/ConsultaTributacao.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java index 808a95ea..b341a459 100644 --- a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java +++ b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java @@ -507,7 +507,18 @@ private static HttpClient createHttpClient(ConfiguracoesNfe config, Certificado } private static String executeRequestWithHttpClient(HttpClient httpClient, String url) throws IOException { - GetMethod getMethod = new GetMethod(url); + String uri = url; + if (httpClient.getHostConfiguration().getProtocol() != null) { + try { + URL u = new URL(url); + httpClient.getHostConfiguration().setHost(u.getHost(), u.getPort(), httpClient.getHostConfiguration().getProtocol()); + uri = u.getFile(); + } catch (Exception e) { + log.warning("[ConsultaTributacao] Erro ao processar URL para modo multithreading: " + e.getMessage()); + } + } + + GetMethod getMethod = new GetMethod(uri); try { getMethod.setRequestHeader("Accept", "application/json"); From 79bd2404351b43fe3ed58a797a513256deb0494d Mon Sep 17 00:00:00 2001 From: Fred William Torno Junior Date: Sun, 14 Dec 2025 18:06:30 -0300 Subject: [PATCH 15/20] =?UTF-8?q?Restringindo=20corre=C3=A7=C3=A3o=20SSL?= =?UTF-8?q?=20apenas=20para=20modo=20multithreading=20conforme=20review?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../swconsultoria/nfe/ConsultaTributacao.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java index b341a459..fe59c9d3 100644 --- a/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java +++ b/src/main/java/br/com/swconsultoria/nfe/ConsultaTributacao.java @@ -134,7 +134,7 @@ public static String getJson(ConfiguracoesNfe config, Map queryP try { HttpClient httpClient = createHttpClient(config, certificado, url); if (httpClient != null) { - return executeRequestWithHttpClient(httpClient, url); + return executeRequestWithHttpClient(httpClient, url, certificado); } } catch (CertificadoException e) { log.warning("[ConsultaTributacao] Falha ao criar HttpClient, tentando fallback: " + e.getMessage()); @@ -506,15 +506,17 @@ private static HttpClient createHttpClient(ConfiguracoesNfe config, Certificado } } - private static String executeRequestWithHttpClient(HttpClient httpClient, String url) throws IOException { + private static String executeRequestWithHttpClient(HttpClient httpClient, String url, Certificado certificado) throws IOException { String uri = url; - if (httpClient.getHostConfiguration().getProtocol() != null) { - try { - URL u = new URL(url); - httpClient.getHostConfiguration().setHost(u.getHost(), u.getPort(), httpClient.getHostConfiguration().getProtocol()); - uri = u.getFile(); - } catch (Exception e) { - log.warning("[ConsultaTributacao] Erro ao processar URL para modo multithreading: " + e.getMessage()); + if (certificado.isModoMultithreading()) { + if (httpClient.getHostConfiguration().getProtocol() != null) { + try { + URL u = new URL(url); + httpClient.getHostConfiguration().setHost(u.getHost(), u.getPort(), httpClient.getHostConfiguration().getProtocol()); + uri = u.getFile(); + } catch (Exception e) { + log.warning("[ConsultaTributacao] Erro ao processar URL para modo multithreading: " + e.getMessage()); + } } } From 4480d857d56f763345764e30b7c28444062a6ae8 Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Sat, 20 Dec 2025 21:31:50 -0300 Subject: [PATCH 16/20] - Adicionado Monofasico aos calculos IBSCBS - Corrigido busca de IBSCBS para multi-thread --- CHANGELOG.md | 3 +- README.md | 10 ++-- pom.xml | 2 +- .../nfe/dom/ConfiguracoesNfe.java | 4 +- .../swconsultoria/nfe/util/IbsCbsUtil.java | 54 ++++++++++++++++++- .../nfe/exemplos/ConfiguracaoTeste.java | 2 +- .../nfe/exemplos/EventoGenericoTeste.java | 2 +- 7 files changed, 66 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71b1854a..b2d808c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,3 @@ # Notas de versão -- Correcoes Calculos IBSCBS \ No newline at end of file +- Adicionado Monofasico aos calculos IBSCBS +- Corrigido busca de IBSCBS para multi-thread \ No newline at end of file diff --git a/README.md b/README.md index d2b6864e..f15ec168 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Java-NFe [![MIT License](https://img.shields.io/github/license/Samuel-Oliveira/Java_NFe.svg) ](https://github.com/Samuel-Oliveira/Java_NFe/blob/master/LICENSE) [![Maven Central](https://img.shields.io/maven-central/v/br.com.swconsultoria/java-nfe.svg?label=Maven%20Central)](https://search.maven.org/artifact/br.com.swconsultoria/java-nfe/4.00.47/jar) +# Java-NFe [![MIT License](https://img.shields.io/github/license/Samuel-Oliveira/Java_NFe.svg) ](https://github.com/Samuel-Oliveira/Java_NFe/blob/master/LICENSE) [![Maven Central](https://img.shields.io/maven-central/v/br.com.swconsultoria/java-nfe.svg?label=Maven%20Central)](https://search.maven.org/artifact/br.com.swconsultoria/java-nfe/4.00.48/jar) Biblioteca Java para consumo do WebService de NFe/NFCe ### Powered by @@ -22,7 +22,7 @@ Para Iniciar : br.com.swconsultoria java-nfe - 4.00.47 + 4.00.48 ``` @@ -34,7 +34,7 @@ repositories { } } dependencies { - implementation "br.com.swconsultoria:java-nfe:4.00.47" + implementation "br.com.swconsultoria:java-nfe:4.00.48" } ``` @@ -44,6 +44,10 @@ ________________________________________________________________________________ # Historico de Versões +## v4.00.48 - 20/12/2025 - Schemas PL.010b (v1.30) +- Adicionado Monofasico aos calculos IBSCBS +- Corrigido busca de IBSCBS para multi-thread + ## v4.00.47 - 10/12/2025 - Schemas PL.010b (v1.30) - Correcoes calculos IBSCBS diff --git a/pom.xml b/pom.xml index 66bbc9b8..11e3732f 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ br.com.swconsultoria java-nfe - 4.00.47 + 4.00.48 Java_NFe Api java para consumo do webService de nota fiscal eletronica https://github.com/Samuel-Oliveira/Java_NFe diff --git a/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java b/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java index c000bc20..c2ed86d4 100644 --- a/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java +++ b/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java @@ -109,8 +109,8 @@ public static ConfiguracoesNfe criarConfiguracoes(EstadosEnum estado, AmbienteEn log.info(String.format("JAVA-NFE | Samuel Oliveira | samuel@swconsultoria.com.br " + "| VERSAO=%s | DATA_VERSAO=%s | PASTA_SCHEMAS=%s | AMBIENTE=%s | ESTADO=%s", - "4.00.47", - "10/12/2025", + "4.00.48", + "20/12/2025", pastaSchemas, ambiente, estado.getNome().toUpperCase())); diff --git a/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java index 543e83b6..59e5dbb1 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java @@ -85,12 +85,62 @@ public TTribNFe montaImpostosDet(String cclassTrib, TNFe.InfNFe.Det det, String ibsCbs.setGIBSCBS(montarGrupoIBSCBS()); } + if (Boolean.TRUE.equals(cstIbsCbs.getIndIBSCBSMono())) { + ibsCbs.setGIBSCBSMono(montaGrupoMono(det)); + } + return ibsCbs; } + private TMonofasia montaGrupoMono(TNFe.InfNFe.Det det) { + TMonofasia gMono = new TMonofasia(); + if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaPadrao())) { + TMonofasia.GMonoPadrao monoPadrao = new TMonofasia.GMonoPadrao(); + monoPadrao.setQBCMono(ObjetoUtil.getValor4Casas(new BigDecimal(det.getProd().getQCom()))); + monoPadrao.setAdRemIBS("0.00"); + monoPadrao.setAdRemCBS("0.00"); + monoPadrao.setVIBSMono("0.00"); + monoPadrao.setVCBSMono("0.00"); + gMono.setGMonoPadrao(monoPadrao); + } + + if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaRetidaAnt())) { + TMonofasia.GMonoReten monoReten = new TMonofasia.GMonoReten(); + monoReten.setQBCMonoReten(ObjetoUtil.getValor4Casas(new BigDecimal(det.getProd().getQCom()))); + monoReten.setAdRemCBSReten("0.00"); + monoReten.setAdRemIBSReten("0.00"); + monoReten.setVCBSMonoReten("0.00"); + monoReten.setVIBSMonoReten("0.00"); + gMono.setGMonoReten(monoReten); + } + + if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaSujeitaRetencao())) { + TMonofasia.GMonoRet monoRet = new TMonofasia.GMonoRet(); + monoRet.setQBCMonoRet(ObjetoUtil.getValor4Casas(new BigDecimal(det.getProd().getQCom()))); + monoRet.setAdRemCBSRet("0.00"); + monoRet.setAdRemIBSRet("0.00"); + monoRet.setVCBSMonoRet("0.00"); + monoRet.setVIBSMonoRet("0.00"); + gMono.setGMonoRet(monoRet); + } + + if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaDiferimento())) { + TMonofasia.GMonoDif gMonoDif = new TMonofasia.GMonoDif(); + gMonoDif.setPDifCBS("0.00"); + gMonoDif.setPDifIBS("0.00"); + gMonoDif.setVCBSMonoDif("0.00"); + gMonoDif.setVIBSMonoDif("0.00"); + gMono.setGMonoDif(gMonoDif); + + } + gMono.setVTotCBSMonoItem("0.00"); + gMono.setVTotIBSMonoItem("0.00"); + + return gMono; + } + private boolean deveMontarGrupoIBSCBS() { return Boolean.TRUE.equals(cstIbsCbs.getIndIBSCBS()) - || Boolean.TRUE.equals(cstIbsCbs.getIndIBSCBSMono()) || Boolean.TRUE.equals(cstIbsCbs.getIndRedAliq()) || Boolean.TRUE.equals(cstIbsCbs.getIndDif()) || Boolean.TRUE.equals(cstIbsCbs.getIndTransfCred()); @@ -236,7 +286,7 @@ private T criarGrupoImposto( BigDecimal percentRed = ObjetoUtil.getOrZero(percentualReducao); BigDecimal aliqEfet = aliq; - if (Boolean.TRUE.equals(cstIbsCbs.getIndRedAliq()) && percentRed.compareTo(BigDecimal.ZERO) > 0) { + if (Boolean.TRUE.equals(cstIbsCbs.getIndRedAliq())) { TRed gRed = criarRedutor(percentRed, aliq); redSetter.set(grupo, gRed); aliqEfet = new BigDecimal(gRed.getPAliqEfet()); diff --git a/src/test/java/br/com/swconsultoria/nfe/exemplos/ConfiguracaoTeste.java b/src/test/java/br/com/swconsultoria/nfe/exemplos/ConfiguracaoTeste.java index 24d4fad4..d7308a6a 100644 --- a/src/test/java/br/com/swconsultoria/nfe/exemplos/ConfiguracaoTeste.java +++ b/src/test/java/br/com/swconsultoria/nfe/exemplos/ConfiguracaoTeste.java @@ -29,7 +29,7 @@ public static ConfiguracoesNfe iniciaConfiguracoes(EstadosEnum estado, AmbienteE Certificado certificado = CertificadoService.certificadoPfx("d:/teste/certificado.pfx", "123456"); - return ConfiguracoesNfe.criarConfiguracoes(estado, ambiente, certificado, "d:/teste/nfe/schemas"); + return ConfiguracoesNfe.criarConfiguracoes(estado, ambiente, certificado, "./schemas"); } } diff --git a/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java b/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java index 1b7f5b17..a0863ba9 100644 --- a/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java +++ b/src/test/java/br/com/swconsultoria/nfe/exemplos/EventoGenericoTeste.java @@ -44,7 +44,7 @@ public static void main(String[] args) { detEvento.setDescEvento("Informação de efetivo pagamento integral para liberar crédito presumido do adquirente"); detEvento.setCOrgaoAutor(config.getEstado().getCodigoUF()); detEvento.setTpAutor("1"); - detEvento.setVerAplic("v4.00.47"); + detEvento.setVerAplic("v4.00.48"); detEvento.setIndQuitacao("1"); generico.setDetEvento(detEvento); From 08a5d8b9387ea2849bf3525da921475552c81699 Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Sat, 20 Dec 2025 22:42:26 -0300 Subject: [PATCH 17/20] - Corrigido monofasia retida Anteriormente. --- CHANGELOG.md | 3 +-- README.md | 3 +++ .../swconsultoria/nfe/util/IbsCbsUtil.java | 20 +++++++++---------- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2d808c1..4679c5f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,2 @@ # Notas de versão -- Adicionado Monofasico aos calculos IBSCBS -- Corrigido busca de IBSCBS para multi-thread \ No newline at end of file +- Corrigido monofasia retida Anteriormente. \ No newline at end of file diff --git a/README.md b/README.md index f15ec168..b766c939 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,9 @@ ________________________________________________________________________________ # Historico de Versões +## v4.00.49 - ??? - Schemas PL.010b (v1.30) +- Corrigido monofasia retida Anteriormente. + ## v4.00.48 - 20/12/2025 - Schemas PL.010b (v1.30) - Adicionado Monofasico aos calculos IBSCBS - Corrigido busca de IBSCBS para multi-thread diff --git a/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java index 59e5dbb1..91b3eb50 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java @@ -105,16 +105,6 @@ private TMonofasia montaGrupoMono(TNFe.InfNFe.Det det) { } if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaRetidaAnt())) { - TMonofasia.GMonoReten monoReten = new TMonofasia.GMonoReten(); - monoReten.setQBCMonoReten(ObjetoUtil.getValor4Casas(new BigDecimal(det.getProd().getQCom()))); - monoReten.setAdRemCBSReten("0.00"); - monoReten.setAdRemIBSReten("0.00"); - monoReten.setVCBSMonoReten("0.00"); - monoReten.setVIBSMonoReten("0.00"); - gMono.setGMonoReten(monoReten); - } - - if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaSujeitaRetencao())) { TMonofasia.GMonoRet monoRet = new TMonofasia.GMonoRet(); monoRet.setQBCMonoRet(ObjetoUtil.getValor4Casas(new BigDecimal(det.getProd().getQCom()))); monoRet.setAdRemCBSRet("0.00"); @@ -124,6 +114,16 @@ private TMonofasia montaGrupoMono(TNFe.InfNFe.Det det) { gMono.setGMonoRet(monoRet); } + if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaSujeitaRetencao())) { + TMonofasia.GMonoReten monoReten = new TMonofasia.GMonoReten(); + monoReten.setQBCMonoReten(ObjetoUtil.getValor4Casas(new BigDecimal(det.getProd().getQCom()))); + monoReten.setAdRemCBSReten("0.00"); + monoReten.setAdRemIBSReten("0.00"); + monoReten.setVCBSMonoReten("0.00"); + monoReten.setVIBSMonoReten("0.00"); + gMono.setGMonoReten(monoReten); + } + if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaDiferimento())) { TMonofasia.GMonoDif gMonoDif = new TMonofasia.GMonoDif(); gMonoDif.setPDifCBS("0.00"); From 684f6e2a926e63e6e598e8428c041ad5c1da5dd7 Mon Sep 17 00:00:00 2001 From: SamuelOliveira Date: Sun, 18 Jan 2026 02:20:39 -0300 Subject: [PATCH 18/20] - Adicionado calculos IBSCBS para Diferimento - Atualizado Cacerts - Corrigido monofasia retida Anteriormente. - Corrigido Informacoes Fisco Impressao Danfe --- CHANGELOG.md | 5 +- README.md | 11 +- pom.xml | 4 +- .../nfe/dom/ConfiguracoesNfe.java | 4 +- .../swconsultoria/nfe/util/IbsCbsUtil.java | 72 +- .../swconsultoria/nfe/util/ObjetoUtil.java | 5 +- src/main/resources/jasper/nfe/danfe.jasper | Bin 136824 -> 137049 bytes src/main/resources/jasper/nfe/danfe.jrxml | 9 +- .../nfe/exemplos/CalculosIbsCbsTeste.java | 82 - .../nfe/exemplos/EnvioNfceTeste.java | 2 +- .../nfe/exemplos/EnvioNfeTeste.java | 2 +- .../nfe/exemplos/EventoGenericoTeste.java | 2 +- .../nfe/exemplos/IbsCbsTeste.java | 144 + src/test/resources/IbsCbs.xml | 1 + src/test/resources/IbsCbsDiferimento.xml | 1 + src/test/resources/IbsCbsMonofasico.xml | 1 + src/test/resources/IbsCbsRegular.xml | 1 + src/test/resources/TesteXml.xml | 163 + src/test/resources/ibscbs.json | 5238 +++++++++++++++++ 19 files changed, 5638 insertions(+), 109 deletions(-) delete mode 100644 src/test/java/br/com/swconsultoria/nfe/exemplos/CalculosIbsCbsTeste.java create mode 100644 src/test/java/br/com/swconsultoria/nfe/exemplos/IbsCbsTeste.java create mode 100644 src/test/resources/IbsCbs.xml create mode 100644 src/test/resources/IbsCbsDiferimento.xml create mode 100644 src/test/resources/IbsCbsMonofasico.xml create mode 100644 src/test/resources/IbsCbsRegular.xml create mode 100644 src/test/resources/TesteXml.xml create mode 100644 src/test/resources/ibscbs.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 4679c5f2..f582da23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,5 @@ # Notas de versão -- Corrigido monofasia retida Anteriormente. \ No newline at end of file +- Adicionado calculos IBSCBS para Diferimento +- Atualizado Cacerts +- Corrigido monofasia retida Anteriormente. +- Corrigido Informacoes Fisco Impressao Danfe \ No newline at end of file diff --git a/README.md b/README.md index b766c939..83425b03 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Java-NFe [![MIT License](https://img.shields.io/github/license/Samuel-Oliveira/Java_NFe.svg) ](https://github.com/Samuel-Oliveira/Java_NFe/blob/master/LICENSE) [![Maven Central](https://img.shields.io/maven-central/v/br.com.swconsultoria/java-nfe.svg?label=Maven%20Central)](https://search.maven.org/artifact/br.com.swconsultoria/java-nfe/4.00.48/jar) +# Java-NFe [![MIT License](https://img.shields.io/github/license/Samuel-Oliveira/Java_NFe.svg) ](https://github.com/Samuel-Oliveira/Java_NFe/blob/master/LICENSE) [![Maven Central](https://img.shields.io/maven-central/v/br.com.swconsultoria/java-nfe.svg?label=Maven%20Central)](https://search.maven.org/artifact/br.com.swconsultoria/java-nfe/4.00.49/jar) Biblioteca Java para consumo do WebService de NFe/NFCe ### Powered by @@ -22,7 +22,7 @@ Para Iniciar : br.com.swconsultoria java-nfe - 4.00.48 + 4.00.49 ``` @@ -34,7 +34,7 @@ repositories { } } dependencies { - implementation "br.com.swconsultoria:java-nfe:4.00.48" + implementation "br.com.swconsultoria:java-nfe:4.00.49" } ``` @@ -44,8 +44,11 @@ ________________________________________________________________________________ # Historico de Versões -## v4.00.49 - ??? - Schemas PL.010b (v1.30) +## v4.00.49 - 18/01/2026 - Schemas PL.010b (v1.30) - Corrigido monofasia retida Anteriormente. +- Adicionado calculos IBSCBS para Diferimento +- Atualizado Cacerts +- Corrigido Informacoes Fisco Impressao Danfe ## v4.00.48 - 20/12/2025 - Schemas PL.010b (v1.30) - Adicionado Monofasico aos calculos IBSCBS diff --git a/pom.xml b/pom.xml index 11e3732f..e19b31f5 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ br.com.swconsultoria java-nfe - 4.00.48 + 4.00.49 Java_NFe Api java para consumo do webService de nota fiscal eletronica https://github.com/Samuel-Oliveira/Java_NFe @@ -31,7 +31,7 @@ 1.8 - 3.12 + 3.13 4.4.6 2.3.1 2.3.1 diff --git a/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java b/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java index c2ed86d4..fec10b43 100644 --- a/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java +++ b/src/main/java/br/com/swconsultoria/nfe/dom/ConfiguracoesNfe.java @@ -109,8 +109,8 @@ public static ConfiguracoesNfe criarConfiguracoes(EstadosEnum estado, AmbienteEn log.info(String.format("JAVA-NFE | Samuel Oliveira | samuel@swconsultoria.com.br " + "| VERSAO=%s | DATA_VERSAO=%s | PASTA_SCHEMAS=%s | AMBIENTE=%s | ESTADO=%s", - "4.00.48", - "20/12/2025", + "4.00.49", + "18/01/2026", pastaSchemas, ambiente, estado.getNome().toUpperCase())); diff --git a/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java index 91b3eb50..c656dfe0 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/IbsCbsUtil.java @@ -20,6 +20,9 @@ public class IbsCbsUtil { private static final String TOTAL_IBS_UF = "TOTAL_IBS_UF"; private static final String TOTAL_IBS_MUN = "TOTAL_IBS_MUN"; private static final String TOTAL_CBS = "TOTAL_CBS"; + private static final String TOTAL_DIFERIMENTO_IBS_UF = "TOTAL_DIFERIMENTO_IBS_UF"; + private static final String TOTAL_DIFERIMENTO_IBS_MUN = "TOTAL_DIFERIMENTO_IBS_MUN"; + private static final String TOTAL_DIFERIMENTO_CBS = "TOTAL_DIFERIMENTO_CBS"; private static final BigDecimal CEM = BigDecimal.valueOf(100); private static final int SCALE_5 = 5; @@ -35,6 +38,7 @@ public class IbsCbsUtil { private BigDecimal pAliqIbsUf = new BigDecimal("0.1"); private BigDecimal pAliqIbsMun = BigDecimal.ZERO; private BigDecimal pAliqCbs = new BigDecimal("0.9"); + private BigDecimal pAliqDiferimento = BigDecimal.ZERO; private BigDecimal baseCalculo = BigDecimal.ZERO; public void setpAliqIbsUf(BigDecimal pAliqIbsUf) { @@ -49,6 +53,10 @@ public void setpAliqCbs(BigDecimal pAliqCbs) { this.pAliqCbs = pAliqCbs; } + public void setpAliqDiferimento(BigDecimal pAliqDiferimento) { + this.pAliqDiferimento = pAliqDiferimento; + } + public IbsCbsUtil(@NonNull List listaCstIbsCbs, @NonNull DocumentoEnum documento) { this.listaCstIbsCbs = listaCstIbsCbs; this.documento = documento; @@ -66,6 +74,9 @@ private void inicializarTotais() { mapTotais.put(TOTAL_IBS_UF, BigDecimal.ZERO); mapTotais.put(TOTAL_IBS_MUN, BigDecimal.ZERO); mapTotais.put(TOTAL_CBS, BigDecimal.ZERO); + mapTotais.put(TOTAL_DIFERIMENTO_IBS_UF, BigDecimal.ZERO); + mapTotais.put(TOTAL_DIFERIMENTO_IBS_MUN, BigDecimal.ZERO); + mapTotais.put(TOTAL_DIFERIMENTO_CBS, BigDecimal.ZERO); } public TTribNFe montaImpostosDet(String cclassTrib, TNFe.InfNFe.Det det) throws NfeException { @@ -94,7 +105,7 @@ public TTribNFe montaImpostosDet(String cclassTrib, TNFe.InfNFe.Det det, String private TMonofasia montaGrupoMono(TNFe.InfNFe.Det det) { TMonofasia gMono = new TMonofasia(); - if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaPadrao())) { + if (Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaPadrao())) { TMonofasia.GMonoPadrao monoPadrao = new TMonofasia.GMonoPadrao(); monoPadrao.setQBCMono(ObjetoUtil.getValor4Casas(new BigDecimal(det.getProd().getQCom()))); monoPadrao.setAdRemIBS("0.00"); @@ -104,7 +115,7 @@ private TMonofasia montaGrupoMono(TNFe.InfNFe.Det det) { gMono.setGMonoPadrao(monoPadrao); } - if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaRetidaAnt())) { + if (Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaRetidaAnt())) { TMonofasia.GMonoRet monoRet = new TMonofasia.GMonoRet(); monoRet.setQBCMonoRet(ObjetoUtil.getValor4Casas(new BigDecimal(det.getProd().getQCom()))); monoRet.setAdRemCBSRet("0.00"); @@ -114,7 +125,7 @@ private TMonofasia montaGrupoMono(TNFe.InfNFe.Det det) { gMono.setGMonoRet(monoRet); } - if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaSujeitaRetencao())) { + if (Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaSujeitaRetencao())) { TMonofasia.GMonoReten monoReten = new TMonofasia.GMonoReten(); monoReten.setQBCMonoReten(ObjetoUtil.getValor4Casas(new BigDecimal(det.getProd().getQCom()))); monoReten.setAdRemCBSReten("0.00"); @@ -124,7 +135,7 @@ private TMonofasia montaGrupoMono(TNFe.InfNFe.Det det) { gMono.setGMonoReten(monoReten); } - if(Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaDiferimento())) { + if (Boolean.TRUE.equals(classTribIbsCbs.getMonofasiaDiferimento())) { TMonofasia.GMonoDif gMonoDif = new TMonofasia.GMonoDif(); gMonoDif.setPDifCBS("0.00"); gMonoDif.setPDifIBS("0.00"); @@ -141,9 +152,9 @@ private TMonofasia montaGrupoMono(TNFe.InfNFe.Det det) { private boolean deveMontarGrupoIBSCBS() { return Boolean.TRUE.equals(cstIbsCbs.getIndIBSCBS()) - || Boolean.TRUE.equals(cstIbsCbs.getIndRedAliq()) - || Boolean.TRUE.equals(cstIbsCbs.getIndDif()) - || Boolean.TRUE.equals(cstIbsCbs.getIndTransfCred()); + || Boolean.TRUE.equals(cstIbsCbs.getIndRedAliq()) + || Boolean.TRUE.equals(cstIbsCbs.getIndDif()) + || Boolean.TRUE.equals(cstIbsCbs.getIndTransfCred()); } private TCIBS montarGrupoIBSCBS() { @@ -173,6 +184,15 @@ private void atualizarTotais(TCIBS.GIBSUF gIBSUF, TCIBS.GIBSMun gIBSMun, TCIBS.G mapTotais.merge(TOTAL_IBS_UF, new BigDecimal(gIBSUF.getVIBSUF()), BigDecimal::add); mapTotais.merge(TOTAL_IBS_MUN, new BigDecimal(gIBSMun.getVIBSMun()), BigDecimal::add); mapTotais.merge(TOTAL_CBS, new BigDecimal(gCBS.getVCBS()), BigDecimal::add); + if(gIBSUF.getGDif() != null){ + mapTotais.merge(TOTAL_DIFERIMENTO_IBS_UF, new BigDecimal(gIBSUF.getGDif().getVDif()), BigDecimal::add); + } + if(gIBSMun.getGDif() != null){ + mapTotais.merge(TOTAL_DIFERIMENTO_IBS_MUN, new BigDecimal(gIBSMun.getGDif().getVDif()), BigDecimal::add); + } + if(gCBS.getGDif() != null){ + mapTotais.merge(TOTAL_DIFERIMENTO_CBS, new BigDecimal(gCBS.getGDif().getVDif()), BigDecimal::add); + } } private void filtraCClasstrib(String cclassTrib, String cclassTribRegular) { @@ -218,9 +238,11 @@ private void validaClassTrib(String cclassTrib) throws NfeException { private TCIBS.GIBSUF criarGIBSUF() { return criarGrupoImposto( pAliqIbsUf, + pAliqDiferimento, classTribIbsCbs.getPRedIBS(), TCIBS.GIBSUF::new, TCIBS.GIBSUF::setPIBSUF, + TCIBS.GIBSUF::setGDif, TCIBS.GIBSUF::setGRed, TCIBS.GIBSUF::setVIBSUF ); @@ -229,9 +251,11 @@ private TCIBS.GIBSUF criarGIBSUF() { private TCIBS.GIBSMun criarGIBSMun() { return criarGrupoImposto( pAliqIbsMun, + pAliqDiferimento, classTribIbsCbs.getPRedIBS(), TCIBS.GIBSMun::new, TCIBS.GIBSMun::setPIBSMun, + TCIBS.GIBSMun::setGDif, TCIBS.GIBSMun::setGRed, TCIBS.GIBSMun::setVIBSMun ); @@ -240,9 +264,11 @@ private TCIBS.GIBSMun criarGIBSMun() { private TCIBS.GCBS criarGCBS() { return criarGrupoImposto( pAliqCbs, + pAliqDiferimento, classTribIbsCbs.getPRedCBS(), TCIBS.GCBS::new, TCIBS.GCBS::setPCBS, + TCIBS.GCBS::setGDif, TCIBS.GCBS::setGRed, TCIBS.GCBS::setVCBS ); @@ -263,6 +289,11 @@ private interface RedutorSetter { void set(T grupo, TRed redutor); } + @FunctionalInterface + private interface DifererimentoSetter { + void set(T grupo, TDif diferimento); + } + @FunctionalInterface private interface ValorSetter { void set(T grupo, String valor); @@ -270,9 +301,11 @@ private interface ValorSetter { private T criarGrupoImposto( BigDecimal aliqPadrao, + BigDecimal percentualDiferimento, BigDecimal percentualReducao, GrupoImpostoFactory factory, AliquotaSetter aliqSetter, + DifererimentoSetter difSetter, RedutorSetter redSetter, ValorSetter valorSetter) { @@ -283,16 +316,25 @@ private T criarGrupoImposto( aliqSetter.set(grupo, ObjetoUtil.getValor4Casas(aliq)); - BigDecimal percentRed = ObjetoUtil.getOrZero(percentualReducao); BigDecimal aliqEfet = aliq; if (Boolean.TRUE.equals(cstIbsCbs.getIndRedAliq())) { + BigDecimal percentRed = ObjetoUtil.getOrZero(percentualReducao); TRed gRed = criarRedutor(percentRed, aliq); redSetter.set(grupo, gRed); aliqEfet = new BigDecimal(gRed.getPAliqEfet()); } BigDecimal valor = calcularValorImposto(aliqEfet); + + if (Boolean.TRUE.equals(cstIbsCbs.getIndDif())) { + BigDecimal percentDif = ObjetoUtil.getOrZero(percentualDiferimento); + TDif gDif = criarDiferimento(percentDif, aliqEfet); + difSetter.set(grupo, gDif); + valor = valor.subtract(new BigDecimal(gDif.getVDif())); + } + + valorSetter.set(grupo, ObjetoUtil.getValor2Casas(valor)); return grupo; @@ -341,6 +383,14 @@ private static TRed criarRedutor(BigDecimal percentualReducao, BigDecimal aliqOr return gRed; } + private TDif criarDiferimento(BigDecimal percentualDiferimento, BigDecimal aliqEfet) { + TDif gDif = new TDif(); + gDif.setPDif(ObjetoUtil.getValor4Casas(percentualDiferimento)); + BigDecimal valorDif = calcularValorImposto(percentualDiferimento).multiply(aliqEfet.divide(CEM, SCALE_5, RoundingMode.HALF_UP)); + gDif.setVDif(ObjetoUtil.getValor2Casas(valorDif)); + return gDif; + } + @SuppressWarnings("unchecked") private void calcularBaseCalculoIBSCBS(TNFe.InfNFe.Det det) { BigDecimal vProd = ObjetoUtil.getBigDecimalOrZero(det.getProd().getVProd()); @@ -397,7 +447,7 @@ private TIBSCBSMonoTot.GIBS criarTotaisIBS() { private TIBSCBSMonoTot.GIBS.GIBSUF criarGIBSUFTotal() { TIBSCBSMonoTot.GIBS.GIBSUF gIbsUF = new TIBSCBSMonoTot.GIBS.GIBSUF(); - gIbsUF.setVDif("0.00"); + gIbsUF.setVDif(ObjetoUtil.getValor2Casas(mapTotais.getOrDefault(TOTAL_DIFERIMENTO_IBS_UF, BigDecimal.ZERO))); gIbsUF.setVDevTrib("0.00"); gIbsUF.setVIBSUF(ObjetoUtil.getValor2Casas(mapTotais.getOrDefault(TOTAL_IBS_UF, BigDecimal.ZERO))); return gIbsUF; @@ -405,7 +455,7 @@ private TIBSCBSMonoTot.GIBS.GIBSUF criarGIBSUFTotal() { private TIBSCBSMonoTot.GIBS.GIBSMun criarGIBSMunTotal() { TIBSCBSMonoTot.GIBS.GIBSMun gIbsMun = new TIBSCBSMonoTot.GIBS.GIBSMun(); - gIbsMun.setVDif("0.00"); + gIbsMun.setVDif(ObjetoUtil.getValor2Casas(mapTotais.getOrDefault(TOTAL_DIFERIMENTO_IBS_MUN, BigDecimal.ZERO))); gIbsMun.setVDevTrib("0.00"); gIbsMun.setVIBSMun(ObjetoUtil.getValor2Casas(mapTotais.getOrDefault(TOTAL_IBS_MUN, BigDecimal.ZERO))); return gIbsMun; @@ -413,7 +463,7 @@ private TIBSCBSMonoTot.GIBS.GIBSMun criarGIBSMunTotal() { private TIBSCBSMonoTot.GCBS criarTotaisCBS() { TIBSCBSMonoTot.GCBS gCbs = new TIBSCBSMonoTot.GCBS(); - gCbs.setVDif("0.00"); + gCbs.setVDif(ObjetoUtil.getValor2Casas(mapTotais.getOrDefault(TOTAL_DIFERIMENTO_CBS, BigDecimal.ZERO))); gCbs.setVDevTrib("0.00"); gCbs.setVCBS(ObjetoUtil.getValor2Casas(mapTotais.getOrDefault(TOTAL_CBS, BigDecimal.ZERO))); gCbs.setVCredPres("0.00"); diff --git a/src/main/java/br/com/swconsultoria/nfe/util/ObjetoUtil.java b/src/main/java/br/com/swconsultoria/nfe/util/ObjetoUtil.java index 70fbab4a..28a6b4a2 100644 --- a/src/main/java/br/com/swconsultoria/nfe/util/ObjetoUtil.java +++ b/src/main/java/br/com/swconsultoria/nfe/util/ObjetoUtil.java @@ -40,11 +40,14 @@ public static BigDecimal getOrZero(BigDecimal v) { } public static String getValor2Casas(BigDecimal valor) { + if (valor == null || valor.compareTo(BigDecimal.ZERO) < 0) { + return "0.00"; + } return valor.setScale(2, RoundingMode.HALF_UP).toString(); } public static String getValor4Casas(BigDecimal valor) { - if (valor == null) { + if (valor == null || valor.compareTo(BigDecimal.ZERO) < 0) { return "0.0000"; } return valor.setScale(4, RoundingMode.HALF_UP).toString(); diff --git a/src/main/resources/jasper/nfe/danfe.jasper b/src/main/resources/jasper/nfe/danfe.jasper index ea18c075a8f2a49200773ae1fd3f4d6f3dce651b..31337840c6fdfcb1577687df12793e4a0b97eec1 100644 GIT binary patch delta 32646 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 x5f~CSwh)>`3d{@}Zwnh^ - +