1313import java .io .InputStream ;
1414import java .lang .reflect .Field ;
1515import java .nio .charset .Charset ;
16+ import java .nio .charset .StandardCharsets ;
17+ import java .time .ZoneId ;
1618import java .util .logging .Level ;
1719import java .util .logging .Logger ;
1820
1921/**
2022 * @author Samuel Oliveira
21- *
22- * Responsável por iniciar as configurações das operações NF-e.
23- *
24- * Para iniciar as configurações chame o método estático
25- * iniciaConfiguracoes:<br>
26- * {@code
23+ * <p>
24+ * Responsável por iniciar as configurações das operações NF-e.
25+ * <p>
26+ * Para iniciar as configurações chame o método estático
27+ * iniciaConfiguracoes:<br>
28+ * {@code
2729 * ConfiguracoesIniciaisNfe.iniciaConfiguracoes(estado, ambiente, certificado, schemas);
2830 * }
29- *
3031 * @see ConfiguracoesNfe
3132 * @see ConfiguracoesWebNfe
3233 */
@@ -43,37 +44,49 @@ public class ConfiguracoesNfe {
4344 private String arquivoWebService ;
4445 private Integer retry ;
4546 private InputStream cacert ;
46-
4747 private Charset encode ;
48+ private ZoneId zoneId ;
4849
4950 /**
5051 * Este método recebe como parâmetro os dados necessários para iniciar a
5152 * comunicação de operações dos eventos da NF-e. Retorna uma instância dela
5253 * mesma.
54+ * Nessa inicializacao é usado o ZoneId padrao America/Sao_Paulo
5355 *
54- * @param estado
55- * enumeration Estados, UF do emitente.
56- * @param ambiente
57- * Enumeration AmbienteEnum
58- * @param certificado
59- * objeto Certificado
60- * @param pastaSchemas
61- * local dos arquivo de schemas da NF-e.
56+ * @param estado enumeration Estados, UF do emitente.
57+ * @param ambiente Enumeration AmbienteEnum
58+ * @param certificado objeto Certificado
59+ * @param pastaSchemas local dos arquivo de schemas da NF-e.
6260 * @return ConfiguracoesIniciaisNfe
6361 * @see br.com.swconsultoria.certificado.Certificado
6462 * @see EstadosEnum
6563 */
66- public static ConfiguracoesNfe criarConfiguracoes (EstadosEnum estado , AmbienteEnum ambiente , Certificado certificado , String pastaSchemas )
67- throws CertificadoException {
64+ public static ConfiguracoesNfe criarConfiguracoes (EstadosEnum estado , AmbienteEnum ambiente , Certificado certificado , String pastaSchemas ) throws CertificadoException {
65+ return criarConfiguracoes (estado ,ambiente ,certificado ,pastaSchemas , ZoneId .of ("America/Sao_Paulo" ));
66+ }
67+
68+ /**
69+ * Este método recebe como parâmetro os dados necessários para iniciar a
70+ * comunicação de operações dos eventos da NF-e. Retorna uma instância dela
71+ * mesma.
72+ *
73+ * @param estado enumeration Estados, UF do emitente.
74+ * @param ambiente Enumeration AmbienteEnum
75+ * @param certificado objeto Certificado
76+ * @param pastaSchemas local dos arquivo de schemas da NF-e.
77+ * @param zoneId Zona para configuracoes de data
78+ * @return ConfiguracoesIniciaisNfe
79+ * @see br.com.swconsultoria.certificado.Certificado
80+ * @see EstadosEnum
81+ */
82+ public static ConfiguracoesNfe criarConfiguracoes (EstadosEnum estado , AmbienteEnum ambiente , Certificado certificado , String pastaSchemas , ZoneId zoneId ) throws CertificadoException {
6883
6984 ConfiguracoesNfe configuracoesNfe = new ConfiguracoesNfe ();
70- configuracoesNfe .setEstado (
71- ObjetoUtil .verifica (estado ).orElseThrow (() -> new IllegalArgumentException ("Estado não pode ser Nulo." )));
72- configuracoesNfe .setAmbiente (
73- ObjetoUtil .verifica (ambiente ).orElseThrow (() -> new IllegalArgumentException ("Ambiente não pode ser Nulo." )));
74- configuracoesNfe .setCertificado (
75- ObjetoUtil .verifica (certificado ).orElseThrow (() -> new IllegalArgumentException ("Certificado não pode ser Nulo." )));
85+ configuracoesNfe .setEstado (ObjetoUtil .verifica (estado ).orElseThrow (() -> new IllegalArgumentException ("Estado não pode ser Nulo." )));
86+ configuracoesNfe .setAmbiente (ObjetoUtil .verifica (ambiente ).orElseThrow (() -> new IllegalArgumentException ("Ambiente não pode ser Nulo." )));
87+ configuracoesNfe .setCertificado (ObjetoUtil .verifica (certificado ).orElseThrow (() -> new IllegalArgumentException ("Certificado não pode ser Nulo." )));
7688 configuracoesNfe .setPastaSchemas (pastaSchemas );
89+ configuracoesNfe .setZoneId (ObjetoUtil .verifica (zoneId ).orElseThrow (() -> new IllegalArgumentException ("Zone ID não pode ser Nulo." )));
7790
7891 /**
7992 * Para as versões Java até 11, Eu ainda seto o Encoding por que é permitido.
@@ -82,7 +95,7 @@ public static ConfiguracoesNfe criarConfiguracoes(EstadosEnum estado, AmbienteEn
8295 * -Dsun.jnu.encoding="UTF-8"
8396 *
8497 */
85- if (Integer .parseInt (System .getProperty ("java.class.version" ).substring (0 ,2 )) < 56 ){
98+ if (Integer .parseInt (System .getProperty ("java.class.version" ).substring (0 , 2 )) < 56 ) {
8699 try {
87100 //Setando Encoding.
88101 System .setProperty ("file.encoding" , "UTF-8" );
@@ -96,7 +109,7 @@ public static ConfiguracoesNfe criarConfiguracoes(EstadosEnum estado, AmbienteEn
96109
97110 if (Logger .getLogger ("" ).isLoggable (Level .SEVERE )) {
98111 System .err .println ("####################################################################" );
99- System .err .println (" Api Java Nfe - Versão 4.00.23 - 25/04 /2023" );
112+ System .err .println (" Api Java Nfe - Versão 4.00.24 - 06/05 /2023" );
100113 if (Logger .getLogger ("" ).isLoggable (Level .WARNING )) {
101114 System .
err .
println (
" Samuel Olivera - [email protected] " );
102115 }
@@ -143,10 +156,10 @@ public AmbienteEnum getAmbiente() {
143156 * Ex.:<br>
144157 * {@code
145158 * ConfiguracoesIniciaisNfe.iniciaConfiguracoes(
146- estado,
147- AmbienteEnum.HOMOLOGACAO,
148- certificado,
149- schemas);
159+ * estado,
160+ * AmbienteEnum.HOMOLOGACAO,
161+ * certificado,
162+ * schemas);
150163 * }
151164 *
152165 * @param ambiente
@@ -210,8 +223,7 @@ public EstadosEnum getEstado() {
210223 /**
211224 * Atribui um valor para o atribuito Estado.
212225 *
213- * @param estado
214- * estado
226+ * @param estado estado
215227 * @see EstadosEnum
216228 */
217229 public void setEstado (EstadosEnum estado ) {
@@ -317,15 +329,16 @@ public void setCacert(InputStream cacert) {
317329 *
318330 * @return
319331 */
320- public Charset getEncode () { return encode ;}
332+ public Charset getEncode () {return encode ;}
321333
322334 /**
323335 * Altera o encode utilizado para criar o arquivo xml.<br>
324336 * Por padrão é utilizado o UTF-8 em caso de erro ou não ser
325337 * informado nada.
338+ *
326339 * @param encode
327340 */
328- public void setEncode (Charset encode ) { this .encode = encode ; }
341+ public void setEncode (Charset encode ) {this .encode = encode ;}
329342
330343 /**
331344 * Passar encode via String para o xml.
@@ -334,11 +347,19 @@ public void setCacert(InputStream cacert) {
334347 */
335348 public void setEncode (String nomeEncode ) {
336349 if (nomeEncode != null && !nomeEncode .equals ("" )) {
337- try {
338- this .encode = Charset .forName (nomeEncode );
339- } catch (Exception ex ) {
340- this .encode = Charset . forName ( "UTF-8" ) ;
341- }
350+ try {
351+ this .encode = Charset .forName (nomeEncode );
352+ } catch (Exception ex ) {
353+ this .encode = StandardCharsets . UTF_8 ;
354+ }
342355 }
343356 }
357+
358+ public ZoneId getZoneId () {
359+ return zoneId ;
360+ }
361+
362+ public void setZoneId (ZoneId zoneId ) {
363+ this .zoneId = zoneId ;
364+ }
344365}
0 commit comments