Skip to content

Commit 798467e

Browse files
committed
Alterado campo CEP de long para string para resolver Issue 8;
Adicionada as seguintes validações no campo CEP: - Tamanho do campo diferente de 8 dígitos; - Conteúdo do campo diferente de númerico.
1 parent 196cca5 commit 798467e

File tree

5 files changed

+105
-47
lines changed

5 files changed

+105
-47
lines changed

NFe.AppTeste/MainWindow.xaml.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -878,7 +878,7 @@ protected virtual enderDest GetEnderecoDestinatario()
878878
cMun = 2802908,
879879
xMun = "ITABAIANA",
880880
UF = "SE",
881-
CEP = 49500000,
881+
CEP = "49500000",
882882
cPais = 1058,
883883
xPais = "BRASIL"
884884
};

NFe.Classes/Informacoes/Destinatario/enderDest.cs

+15-1
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,14 @@
3232
/********************************************************************************/
3333

3434
using System;
35+
using System.Linq;
3536

3637
namespace NFe.Classes.Informacoes.Destinatario
3738
{
3839
public class enderDest
3940
{
41+
private string _cep;
42+
4043
/// <summary>
4144
/// E06 - Logradouro
4245
/// </summary>
@@ -77,7 +80,18 @@ public class enderDest
7780
/// E13 - Código do CEP
7881
/// <para>Informar os zeros não significativos. (NT 2011/004)</para>
7982
/// </summary>
80-
public long CEP { get; set; }
83+
public string CEP
84+
{
85+
get { return _cep; }
86+
set
87+
{
88+
if (!value.All(Char.IsDigit))
89+
throw new Exception(@"enderDest\CEP deve receber somente números!");
90+
if (value.Length != 8)
91+
throw new Exception(String.Format(@"enderDest\CEP deve ter 8 números. Tamanho informado: {0}!", value.Length));
92+
_cep = value;
93+
}
94+
}
8195

8296
/// <summary>
8397
/// E14 - Código do País

NFe.Classes/Informacoes/Emitente/enderEmit.cs

+15-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
/********************************************************************************/
3333

3434
using System;
35+
using System.Linq;
3536
using System.Xml.Serialization;
3637
using PropertyChanged;
3738

@@ -40,6 +41,8 @@ namespace NFe.Classes.Informacoes.Emitente
4041
[ImplementPropertyChanged] //Ao usar este plugin, é necessário definir explicitamente a ordem em que os atributos serão serializados.
4142
public class enderEmit
4243
{
44+
private string _cep;
45+
4346
/// <summary>
4447
/// C06 - Logradouro
4548
/// </summary>
@@ -88,7 +91,18 @@ public class enderEmit
8891
/// <para>Informar os zeros não significativos. (NT 2011/004)</para>
8992
/// </summary>
9093
[XmlElement(Order = 8)]
91-
public long CEP { get; set; }
94+
public string CEP
95+
{
96+
get { return _cep; }
97+
set
98+
{
99+
if (!value.All(Char.IsDigit))
100+
throw new Exception(@"enderEmit\CEP deve receber somente números!");
101+
if (value.Length != 8)
102+
throw new Exception(String.Format(@"enderEmit\CEP deve ter 8 números. Tamanho informado: {0}!", value.Length));
103+
_cep = value;
104+
}
105+
}
92106

93107
/// <summary>
94108
/// C14 - Código do País

NFe.Servicos/NFe.Servicos.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
<Compile Include="Retorno\RetornoNFeRetAutorizacao.cs" />
5858
<Compile Include="Retorno\RetornoNfeRetRecepcao.cs" />
5959
<Compile Include="Retorno\RetornoNfeStatusServico.cs" />
60-
<Compile Include="Retorno\teste.cs" />
6160
<Compile Include="ServicosNFe.cs" />
6261
</ItemGroup>
6362
<ItemGroup>

NFe.Utils/NFe/ExtNfeProc.cs

+74-43
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,82 @@
1-
using NFe.Classes;
1+
/********************************************************************************/
2+
/* Projeto: Biblioteca ZeusNFe */
3+
/* Biblioteca C# para emissão de Nota Fiscal Eletrônica - NFe e Nota Fiscal de */
4+
/* Consumidor Eletrônica - NFC-e (http://www.nfe.fazenda.gov.br) */
5+
/* */
6+
/* Direitos Autorais Reservados (c) 2014 Adenilton Batista da Silva */
7+
/* Zeusdev Tecnologia LTDA ME */
8+
/* */
9+
/* Você pode obter a última versão desse arquivo no GitHub */
10+
/* localizado em https://github.com/adeniltonbs/Zeus.Net.NFe.NFCe */
11+
/* */
12+
/* */
13+
/* Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la */
14+
/* sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela */
15+
/* Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) */
16+
/* qualquer versão posterior. */
17+
/* */
18+
/* Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM */
19+
/* NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU */
20+
/* ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor*/
21+
/* do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) */
22+
/* */
23+
/* Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto*/
24+
/* com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., */
25+
/* no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */
26+
/* Você também pode obter uma copia da licença em: */
27+
/* http://www.opensource.org/licenses/lgpl-license.php */
28+
/* */
29+
/* Zeusdev Tecnologia LTDA ME - adenilton@zeusautomacao.com.br */
30+
/* http://www.zeusautomacao.com.br/ */
31+
/* Rua Comendador Francisco josé da Cunha, 111 - Itabaiana - SE - 49500-000 */
32+
/********************************************************************************/
233

3-
namespace NFe.Utils.NFe
34+
using NFe.Classes;
35+
using NFe.Utils;
36+
37+
public static class ExtNfeProc
438
{
5-
public static class ExtNfeProc
39+
/// <summary>
40+
/// Carrega um arquivo XML para um objeto da classe nfeProc
41+
/// </summary>
42+
/// <param name="nfeProc"></param>
43+
/// <param name="arquivoXml">arquivo XML</param>
44+
/// <returns>Retorna um nfeProc carregada com os dados do XML</returns>
45+
public static nfeProc CarregarDeArquivoXml(nfeProc nfeProc, string arquivoXml)
646
{
7-
/// <summary>
8-
/// Carrega um arquivo XML para um objeto da classe nfeProc
9-
/// </summary>
10-
/// <param name="nfeProc"></param>
11-
/// <param name="arquivoXml">arquivo XML</param>
12-
/// <returns>Retorna uma nfeProc carregada com os dados do XML</returns>
13-
public static nfeProc CarregarDeArquivoXml(this nfeProc nfeProc, string arquivoXml)
14-
{
15-
var s = FuncoesXml.ObterNodeDeArquivoXml(typeof(nfeProc).Name, arquivoXml);
16-
return FuncoesXml.XmlStringParaClasse<nfeProc>(s);
17-
}
47+
var s = FuncoesXml.ObterNodeDeArquivoXml(typeof (nfeProc).Name, arquivoXml);
48+
return FuncoesXml.XmlStringParaClasse<nfeProc>(s);
49+
}
1850

19-
/// <summary>
20-
/// Converte o objeto nfeProc para uma string no formato XML
21-
/// </summary>
22-
/// <param name="nfeProc"></param>
23-
/// <returns>Retorna uma string no formato XML com os dados da nfeProc</returns>
24-
public static string ObterXmlString(this nfeProc nfeProc)
25-
{
26-
return FuncoesXml.ClasseParaXmlString(nfeProc);
27-
}
51+
/// <summary>
52+
/// Converte o objeto nfeProc para uma string no formato XML
53+
/// </summary>
54+
/// <param name="nfeProc"></param>
55+
/// <returns>Retorna uma string no formato XML com os dados do nfeProc</returns>
56+
public static string ObterXmlString(this nfeProc nfeProc)
57+
{
58+
return FuncoesXml.ClasseParaXmlString(nfeProc);
59+
}
2860

29-
/// <summary>
30-
/// Coverte uma string XML no formato nfeProc para um objeto nfeProc
31-
/// </summary>
32-
/// <param name="nfeProc"></param>
33-
/// <param name="xmlString"></param>
34-
/// <returns>Retorna um objeto do tipo nfeProc</returns>
35-
public static nfeProc CarregarDeXmlString(this nfeProc nfeProc, string xmlString)
36-
{
37-
var s = FuncoesXml.ObterNodeDeStringXml(typeof(nfeProc).Name, xmlString);
38-
return FuncoesXml.XmlStringParaClasse<nfeProc>(s);
39-
}
61+
/// <summary>
62+
/// Coverte uma string XML no formato nfeProc para um objeto nfeProc
63+
/// </summary>
64+
/// <param name="nfeProc"></param>
65+
/// <param name="xmlString"></param>
66+
/// <returns>Retorna um objeto do tipo nfeProc</returns>
67+
public static nfeProc CarregarDeXmlString(this nfeProc nfeProc, string xmlString)
68+
{
69+
var s = FuncoesXml.ObterNodeDeStringXml(typeof (nfeProc).Name, xmlString);
70+
return FuncoesXml.XmlStringParaClasse<nfeProc>(s);
71+
}
4072

41-
/// <summary>
42-
/// Grava os dados do objeto nfeProc em um arquivo XML
43-
/// </summary>
44-
/// <param name="nfeProc">Objeto nfeProc</param>
45-
/// <param name="arquivoXml">Diretório com nome do arquivo a ser gravado</param>
46-
public static void SalvarArquivoXml(this nfeProc nfeProc, string arquivoXml)
47-
{
48-
FuncoesXml.ClasseParaArquivoXml(nfeProc, arquivoXml);
49-
}
73+
/// <summary>
74+
/// Grava os dados do objeto nfeProc em um arquivo XML
75+
/// </summary>
76+
/// <param name="nfeProc">Objeto nfeProc</param>
77+
/// <param name="arquivoXml">Diretório com nome do arquivo a ser gravado</param>
78+
public static void SalvarArquivoXml(this nfeProc nfeProc, string arquivoXml)
79+
{
80+
FuncoesXml.ClasseParaArquivoXml(nfeProc, arquivoXml);
5081
}
5182
}

0 commit comments

Comments
 (0)