nfse_gyn 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/nfse_gyn.gemspec ADDED
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/nfse_gyn/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'nfse_gyn'
7
+ spec.version = NfseGyn::VERSION
8
+ spec.authors = ['Ramon Vicente']
9
+ spec.email = ['ramonvic@me.com']
10
+
11
+ spec.summary = 'Gem para realizar a geração de NFSE em Goiânia'
12
+ spec.homepage = "https://github.com/ramonvic/nfse_gyn"
13
+ spec.license = 'MIT'
14
+
15
+ spec.metadata['homepage_uri'] = spec.homepage
16
+
17
+ spec.files = `git ls-files`.split("\n")
18
+ spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
20
+ spec.require_paths = ['lib']
21
+
22
+ spec.add_dependency 'activemodel', '~> 3.0'
23
+ spec.add_dependency 'savon', '~> 2.9'
24
+ spec.add_dependency 'signer', '~> 1.10'
25
+
26
+ spec.add_development_dependency 'bundler', '~> 1.7'
27
+ spec.add_development_dependency 'pry'
28
+ spec.add_development_dependency 'rake', '~> 10.0'
29
+ spec.add_development_dependency 'rspec'
30
+ end
@@ -0,0 +1,17 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIICsDCCAhmgAwIBAgIJAOUHvh4oho0tMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
3
+ BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
4
+ aWRnaXRzIFB0eSBMdGQwHhcNMTIwNTAzMTMxODIyWhcNMTMwNTAzMTMxODIyWjBF
5
+ MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50
6
+ ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
7
+ gQCvK5hMPv/R5IFmwWyJOyEaFUrF/ZsmN+Gip8hvR6rLP3YPNx9iFYvPcZllFmuV
8
+ wyaz7YT2N5BsqTwLdyi5v4HY4fUtuz0p8jIPoSd6dfDvcnSpf4QLTOgOaL3ciPEb
9
+ gDHH2tnIksukoWzqCYva+qFZ74NFl19swXotW9fA4Jzs4QIDAQABo4GnMIGkMB0G
10
+ A1UdDgQWBBRU1WEHDnP8Hr7ZulxrSzEwOcYpMzB1BgNVHSMEbjBsgBRU1WEHDnP8
11
+ Hr7ZulxrSzEwOcYpM6FJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUt
12
+ U3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAOUHvh4o
13
+ ho0tMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEASY/9SAOK57q9mGnN
14
+ JJeyDbmyGrAHSJTod646xTHYkMvhUqwHyk9PTr5bdfmswpmyVn+AQ43U2tU5vnpT
15
+ BmKpHWD2+HSHgGa92mMLrfBOd8EBZ329NL3N2HDPIaHr4NPGyhNrSK3QVOnAq2D0
16
+ jlyrGYJlLli1NxHiBz7FCEJaVI8=
17
+ -----END CERTIFICATE-----
@@ -0,0 +1,18 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ Proc-Type: 4,ENCRYPTED
3
+ DEK-Info: DES-EDE3-CBC,D53BEDA3FEA82258
4
+
5
+ a9x4N5JZ6qwza28OAEBWyS4s4GysgbiJf11wX2e1Ol/rHt9/PGvZCK9PSyW/haRn
6
+ l5iT95n8Ohyr16Ngx/p02Jq3TEbs/Jsxz7+z55R5E3LvGKGZIB8Yh8dvI4ArzPsK
7
+ QiwoegJnSWdTQnfybbbpv+11RrKtb1/H0/i9fIHDJUhch9HwNn/yZGs9uYRxVBGe
8
+ OFLAdnCB+JG5Q5p24aWeYEWQLbYB69uc9kiV60qgfp4ZxRgdeU55eLZe48d9clG7
9
+ 8vFAjM3+Q5WcgAgthKgD2HbjgcQ11WIZyHsshRvdWukk7iir7ogbOR/20sIWc+mY
10
+ hVdWfctYfWuheq7qwAfbvc8gSpgBRMziSI+5dFF4Ge80ahy7sxdlWJ4zNrqzTEIf
11
+ 5CyN2cC6h8fbJ95bifJFUIKDi+rpkmFtnW4eh11BOL6vYlSFaL35Kw2teRmFCk6M
12
+ iBmIStavcfVj61ZClla3Xso5gl8Ei8EGBSuSSLT1Uq3WJ6eLh5JWkpV3+mir1HWO
13
+ vNIl6L4zm2kngwL73NFeG7ZFMTv2yAuif3Hpr3akZudp/+qDcIcnqnmY47HsOtOb
14
+ ArLwBalIu4zsKF5IzqGiZ6tbMgRHDbLw/HAuuYHlJF5TeMDqnQFGi09LpO6IHPBh
15
+ ZqVKuZ1LVLgCRpvkW12z0sxfByFHKK6RvgPgR9tPdVmCBJLwCbLa7AqNDVrJNe6q
16
+ OEwp95+7OTx1b7jVXiZ3wO0XpPWKAMXWAEGDd9YeNVdfXPgypSe4p/wJgtoCiPtz
17
+ Mm0NNYkrl2J/brj2jd5WRk6D2BWxf6pQKULzovTCX04pNxfLBBXBlQ==
18
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4
+ <soap:Body>
5
+ <ConsultarNfseRpsResponse xmlns="http://nfse.goiania.go.gov.br/ws/">
6
+ <ConsultarNfseRpsResult>
7
+ <![CDATA[
8
+ <ConsultarNfseRpsResposta xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd">
9
+ <ListaMensagemRetorno>
10
+ <MensagemRetorno>
11
+ <Codigo>L031</Codigo>
12
+ <Mensagem>RPS NAO ENCONTRADO</Mensagem>
13
+ <Correcao>RPS NAO ENCONTRADO</Correcao>
14
+ </MensagemRetorno>
15
+ </ListaMensagemRetorno>
16
+ </ConsultarNfseRpsResposta>
17
+ ]]>
18
+ </ConsultarNfseRpsResult>
19
+ </ConsultarNfseRpsResponse>
20
+ </soap:Body>
21
+ </soap:Envelope>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4
+ <soap:Body>
5
+ <GerarNfseResponse xmlns="http://nfse.goiania.go.gov.br/ws/">
6
+ <GerarNfseResult>
7
+ <![CDATA[
8
+ <GerarNfseResposta
9
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
10
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
11
+ xmlns="http://notacarioca.rio.gov.br/WSNacional/XSD/1/nfse_pcrj_v01.xsd">
12
+ <ListaMensagemRetorno
13
+ xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">
14
+ <MensagemRetorno>
15
+ <Codigo>E10</Codigo>
16
+ <Mensagem>RPS já informado.</Mensagem>
17
+ <Correcao>Para essa Inscrição Municipal/CNPJ já existe um RPS informado com o mesmo número, série e tipo. </Correcao>
18
+ </MensagemRetorno>
19
+ </ListaMensagemRetorno>
20
+ </GerarNfseResposta>
21
+ ]]>
22
+ </GerarNfseResult>
23
+ </GerarNfseResponse>
24
+ </soap:Body>
25
+ </soap:Envelope>
@@ -0,0 +1,13 @@
1
+ <ConsultarNfseRpsEnvio xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd">
2
+ <IdentificacaoRps>
3
+ <Numero>14</Numero>
4
+ <Serie>TESTE</Serie>
5
+ <Tipo>1</Tipo>
6
+ </IdentificacaoRps>
7
+ <Prestador>
8
+ <CpfCnpj>
9
+ <Cnpj>46034125000133</Cnpj>
10
+ </CpfCnpj>
11
+ <InscricaoMunicipal>5671485</InscricaoMunicipal>
12
+ </Prestador>
13
+ </ConsultarNfseRpsEnvio>
@@ -0,0 +1,93 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4
+ <soap:Body>
5
+ <ConsultarNfseRpsResponse xmlns="http://nfse.goiania.go.gov.br/ws/">
6
+ <ConsultarNfseRpsResult>
7
+ <![CDATA[
8
+ <ConsultarNfseRpsResposta xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd">
9
+ <CompNfse>
10
+ <Nfse>
11
+ <InfNfse>
12
+ <Numero>370</Numero>
13
+ <CodigoVerificacao>MB94-C3ZA</CodigoVerificacao>
14
+ <DataEmissao>2011-08-30T00:00:00</DataEmissao>
15
+ <OutrasInformacoes>OUTRAS INFORMACOES SOBRE O SERVICO.</OutrasInformacoes>
16
+ <ValoresNfse>
17
+ <BaseCalculo>0</BaseCalculo>
18
+ <Aliquota>5</Aliquota>
19
+ <ValorIss>0</ValorIss>
20
+ </ValoresNfse>
21
+ <DeclaracaoPrestacaoServico>
22
+ <IdentificacaoRps>
23
+ <Numero>14</Numero>
24
+ <Serie>UNICA</Serie>
25
+ <Tipo>1</Tipo>
26
+ </IdentificacaoRps>
27
+ <DataEmissao>2011-08-30</DataEmissao>
28
+ <Competencia>2011-08-30T00:00:00</Competencia>
29
+ <Servico>
30
+ <Valores>
31
+ <ValorServicos>1000.00</ValorServicos>
32
+ <ValorDeducoes>1000</ValorDeducoes>
33
+ <ValorPis>0.00</ValorPis>
34
+ <ValorCofins>0.00</ValorCofins>
35
+ <ValorInss>0.00</ValorInss>
36
+ <ValorIr>0.00</ValorIr>
37
+ <ValorCsll>0.00</ValorCsll>
38
+ <ValorIss>0</ValorIss>
39
+ <Aliquota>5</Aliquota>
40
+ <DescontoIncondicionado>0.00</DescontoIncondicionado>
41
+ </Valores>
42
+ <IssRetido>2</IssRetido>
43
+ <CodigoTributacaoMunicipio>791120000</CodigoTributacaoMunicipio>
44
+ <Discriminacao>TESTE DE GERACAO OK.\\s\\nEM PRODUCAO, SUA NOTA SERIA GERADA SEM CRITICAS.\\s\\nOS
45
+ DADOS
46
+ DESSA NOTA SAO FICTICIOS.</Discriminacao>
47
+ <CodigoMunicipio>0025300</CodigoMunicipio>
48
+ <ExigibilidadeISS>1</ExigibilidadeISS>
49
+ <MunicipioIncidencia>0025300</MunicipioIncidencia>
50
+ </Servico>
51
+ <Prestador>
52
+ <IdentificacaoPrestador>
53
+ <CpfCnpj>
54
+ <Cnpj>02843557000110</Cnpj>
55
+ </CpfCnpj>
56
+ <InscricaoMunicipal>1300687</InscricaoMunicipal>
57
+ </IdentificacaoPrestador>
58
+ </Prestador>
59
+ <Tomador>
60
+ <IdentificacaoTomador>
61
+ <CpfCnpj>
62
+ <Cpf>88888888888</Cpf>
63
+ </CpfCnpj>
64
+ </IdentificacaoTomador>
65
+ <RazaoSocial>JOSE DA SILVA TOMADOR DO SERVICO</RazaoSocial>
66
+ <Endereco>
67
+ <Endereco>RUA DAS AMENDOEIRAS</Endereco>
68
+ <Numero>30</Numero>
69
+ <Complemento>LOTE 4</Complemento>
70
+ <Bairro>CENTRO</Bairro>
71
+ <CodigoMunicipio>0025300</CodigoMunicipio>
72
+ <Uf>GO</Uf>
73
+ <Cep>74823350</Cep>
74
+ </Endereco>
75
+ </Tomador>
76
+ <OptanteSimplesNacional>2</OptanteSimplesNacional>
77
+ </DeclaracaoPrestacaoServico>
78
+ </InfNfse>
79
+ <versao>2.0</versao>
80
+ </Nfse>
81
+ </CompNfse>
82
+ <ListaMensagemRetorno>
83
+ <MensagemRetorno>
84
+ <Codigo>L000</Codigo>
85
+ <Mensagem>NORMAL</Mensagem>
86
+ </MensagemRetorno>
87
+ </ListaMensagemRetorno>
88
+ </ConsultarNfseRpsResposta>
89
+ ]]>
90
+ </ConsultarNfseRpsResult>
91
+ </ConsultarNfseRpsResponse>
92
+ </soap:Body>
93
+ </soap:Envelope>
@@ -0,0 +1,75 @@
1
+ <GerarNfseEnvio xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd">
2
+ <Rps>
3
+ <InfDeclaracaoPrestacaoServico xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd">
4
+ <Rps Id="3033">
5
+ <IdentificacaoRps>
6
+ <Numero>3033</Numero>
7
+ <Serie>TESTE</Serie>
8
+ <Tipo>1</Tipo>
9
+ </IdentificacaoRps>
10
+ <DataEmissao>2024-01-11T23:33:22</DataEmissao>
11
+ <Status>1</Status>
12
+ </Rps>
13
+ <Servico>
14
+ <Valores>
15
+ <ValorServicos>100.1</ValorServicos>
16
+ <Aliquota>2.0</Aliquota>
17
+ </Valores>
18
+ <CodigoTributacaoMunicipio>620150100</CodigoTributacaoMunicipio>
19
+ <Discriminacao>Teste de RPS</Discriminacao>
20
+ <CodigoMunicipio>0025300</CodigoMunicipio>
21
+ </Servico>
22
+ <Prestador>
23
+ <CpfCnpj>
24
+ <Cnpj>46034125000133</Cnpj>
25
+ </CpfCnpj>
26
+ <InscricaoMunicipal>5671485</InscricaoMunicipal>
27
+ </Prestador>
28
+ <Tomador>
29
+ <IdentificacaoTomador>
30
+ <CpfCnpj>
31
+ <Cnpj>98924674000187</Cnpj>
32
+ </CpfCnpj>
33
+ </IdentificacaoTomador>
34
+ <RazaoSocial>XPTO Tecnologia Ltda</RazaoSocial>
35
+ <Endereco>
36
+ <Endereco>Rua das Rosas</Endereco>
37
+ <Numero>111</Numero>
38
+ <Complemento>Sobre Loja</Complemento>
39
+ <Bairro>Centro</Bairro>
40
+ <CodigoMunicipio>0025300</CodigoMunicipio>
41
+ <Uf>GO</Uf>
42
+ <Cep>74672680</Cep>
43
+ </Endereco>
44
+ </Tomador>
45
+ </InfDeclaracaoPrestacaoServico>
46
+ <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
47
+ <SignedInfo>
48
+ <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
49
+ <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
50
+ <Reference URI="#3033">
51
+ <Transforms>
52
+ <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
53
+ <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
54
+ </Transforms>
55
+ <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
56
+ <DigestValue>5dog9yR3VI8Hkk0JGHIdZFHXXWo=</DigestValue>
57
+ </Reference>
58
+ </SignedInfo>
59
+ <SignatureValue>
60
+ icFX21VVyjXnX/C+dkGs1qXa0vleNKk25ycNUSb2MAUTidi1AApKdQEecG3AYaQVT4pfwUXCJzPCaSPNXn5kr+hk49j8dO0zo5wPyN6dhLT49WjkJQKPzA9wj/rl9Gs4kPp/rpOtSfsV3UlyjvMfEvmHlOZseg5XTRnAjIzm3oTWrRK5oRQmYm0TmeH3e7LHxC+DIXaIp6+o2DfTU5zvrmkokTs4r7owCTvn0Lox86JuUuU3RuwSix09lmrTGcm/L5eSq9CF+bNX1ovod33RILfR4ZQbK6RDo2Pbx55FyIuKUUqBqbIzZuntVQ3MalWmZi0Dj4dbhAG0z6Zu/1VpRw==
61
+ </SignatureValue>
62
+ <KeyInfo>
63
+ <X509Data>
64
+ <X509IssuerSerial>
65
+ <X509IssuerName>CN=AC SOLUTI Multipla v5,OU=AC SOLUTI v5,O=ICP-Brasil,C=BR</X509IssuerName>
66
+ <X509SerialNumber>1287505043903900170</X509SerialNumber>
67
+ </X509IssuerSerial>
68
+ <X509Certificate>
69
+ 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
70
+ </X509Certificate>
71
+ </X509Data>
72
+ </KeyInfo>
73
+ </Signature>
74
+ </Rps>
75
+ </GerarNfseEnvio>
@@ -0,0 +1,95 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4
+ <soap:Body>
5
+ <GerarNfseResponse xmlns="http://nfse.goiania.go.gov.br/ws/">
6
+ <GerarNfseResult>
7
+ <![CDATA[
8
+ <GerarNfseResposta xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd">
9
+ <ListaNfse>
10
+ <CompNfse>
11
+ <Nfse>
12
+ <InfNfse>
13
+ <Numero>370</Numero>
14
+ <CodigoVerificacao>MB94-C3ZA</CodigoVerificacao>
15
+ <DataEmissao>2011-08-30T00:00:00</DataEmissao>
16
+ <OutrasInformacoes>OUTRAS INFORMACOES SOBRE O SERVICO.</OutrasInformacoes>
17
+ <ValoresNfse>
18
+ <BaseCalculo>0</BaseCalculo>
19
+ <Aliquota>5</Aliquota>
20
+ <ValorIss>0</ValorIss>
21
+ </ValoresNfse>
22
+ <DeclaracaoPrestacaoServico>
23
+ <IdentificacaoRps>
24
+ <Numero>14</Numero>
25
+ <Serie>UNICA</Serie>
26
+ <Tipo>1</Tipo>
27
+ </IdentificacaoRps>
28
+ <DataEmissao>2011-08-30</DataEmissao>
29
+ <Competencia>2011-08-30T00:00:00</Competencia>
30
+ <Servico>
31
+ <Valores>
32
+ <ValorServicos>1000.00</ValorServicos>
33
+ <ValorDeducoes>1000</ValorDeducoes>
34
+ <ValorPis>0.00</ValorPis>
35
+ <ValorCofins>0.00</ValorCofins>
36
+ <ValorInss>0.00</ValorInss>
37
+ <ValorIr>0.00</ValorIr>
38
+ <ValorCsll>0.00</ValorCsll>
39
+ <ValorIss>0</ValorIss>
40
+ <Aliquota>5</Aliquota>
41
+ <DescontoIncondicionado>0.00</DescontoIncondicionado>
42
+ </Valores>
43
+ <IssRetido>2</IssRetido>
44
+ <CodigoTributacaoMunicipio>791120000</CodigoTributacaoMunicipio>
45
+ <Discriminacao>TESTE DE GERACAO OK.\\s\\nEM PRODUCAO, SUA NOTA SERIA GERADA SEM CRITICAS.\\s\\nOS
46
+ DADOS
47
+ DESSA NOTA SAO FICTICIOS.</Discriminacao>
48
+ <CodigoMunicipio>0025300</CodigoMunicipio>
49
+ <ExigibilidadeISS>1</ExigibilidadeISS>
50
+ <MunicipioIncidencia>0025300</MunicipioIncidencia>
51
+ </Servico>
52
+ <Prestador>
53
+ <IdentificacaoPrestador>
54
+ <CpfCnpj>
55
+ <Cnpj>02843557000110</Cnpj>
56
+ </CpfCnpj>
57
+ <InscricaoMunicipal>1300687</InscricaoMunicipal>
58
+ </IdentificacaoPrestador>
59
+ </Prestador>
60
+ <Tomador>
61
+ <IdentificacaoTomador>
62
+ <CpfCnpj>
63
+ <Cpf>88888888888</Cpf>
64
+ </CpfCnpj>
65
+ </IdentificacaoTomador>
66
+ <RazaoSocial>JOSE DA SILVA TOMADOR DO SERVICO</RazaoSocial>
67
+ <Endereco>
68
+ <Endereco>RUA DAS AMENDOEIRAS</Endereco>
69
+ <Numero>30</Numero>
70
+ <Complemento>LOTE 4</Complemento>
71
+ <Bairro>CENTRO</Bairro>
72
+ <CodigoMunicipio>0025300</CodigoMunicipio>
73
+ <Uf>GO</Uf>
74
+ <Cep>74823350</Cep>
75
+ </Endereco>
76
+ </Tomador>
77
+ <OptanteSimplesNacional>2</OptanteSimplesNacional>
78
+ </DeclaracaoPrestacaoServico>
79
+ </InfNfse>
80
+ <versao>2.0</versao>
81
+ </Nfse>
82
+ </CompNfse>
83
+ </ListaNfse>
84
+ <ListaMensagemRetorno>
85
+ <MensagemRetorno>
86
+ <Codigo>L000</Codigo>
87
+ <Mensagem>NORMAL</Mensagem>
88
+ </MensagemRetorno>
89
+ </ListaMensagemRetorno>
90
+ </GerarNfseResposta>
91
+ ]]>
92
+ </GerarNfseResult>
93
+ </GerarNfseResponse>
94
+ </soap:Body>
95
+ </soap:Envelope>
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe NfseGyn::Configuration do
4
+ context 'when not configured' do
5
+ before do
6
+ NfseGyn.configure do |config|
7
+ config.test_mode = false
8
+ config.cert_path = nil
9
+ config.ca_cert_path = nil
10
+ config.cert_key_path = nil
11
+ config.cert_key_password = nil
12
+ end
13
+ end
14
+
15
+ after do
16
+ NfseGyn.reset!
17
+ end
18
+
19
+ it { expect(NfseGyn.configuration.cert_path).to be_nil }
20
+ it { expect(NfseGyn.configuration.ca_cert_path).to be_nil }
21
+ it { expect(NfseGyn.configuration.cert_key_path).to be_nil }
22
+ it { expect(NfseGyn.configuration.cert_key_password).to be_nil }
23
+ it { expect(NfseGyn.configuration.wsdl).to eq 'https://nfse.goiania.go.gov.br/ws/nfse.asmx?wsdl' }
24
+ end
25
+
26
+ context 'when configured' do
27
+ before do
28
+ NfseGyn.configure do |config|
29
+ config.test_mode = true
30
+
31
+ config.cert_path = '/my/string/path/to/certicate.pem'
32
+ config.ca_cert_path = '/my/string/path/to/ca/certicate.pem'
33
+ config.cert_key_path = '/my/string/path/to/certicate/key.pem'
34
+ config.cert_key_password = 'very-secure-encrypted-password'
35
+ end
36
+ end
37
+
38
+ after do
39
+ NfseGyn.reset!
40
+ end
41
+
42
+ it { expect(NfseGyn.configuration.cert_path).to eq '/my/string/path/to/certicate.pem' }
43
+ it { expect(NfseGyn.configuration.ca_cert_path).to eq '/my/string/path/to/ca/certicate.pem' }
44
+ it { expect(NfseGyn.configuration.cert_key_path).to eq '/my/string/path/to/certicate/key.pem' }
45
+ it { expect(NfseGyn.configuration.cert_key_password).to eq 'very-secure-encrypted-password' }
46
+ it { expect(NfseGyn.configuration.wsdl).to eq 'https://nfse.goiania.go.gov.br/ws/nfse.asmx?wsdl' }
47
+ end
48
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+ require 'savon/mock/spec_helper'
3
+
4
+ RSpec.describe NfseGyn::ConsultarNfse do
5
+ include Savon::SpecHelper
6
+
7
+ subject { described_class.new(invoice_number, invoice_serie, invoice_type) }
8
+
9
+ let(:invoice_number) { 1 }
10
+ let(:invoice_serie) { 'UNICA' }
11
+ let(:invoice_type) { 1 }
12
+
13
+ before(:all) { savon.mock! }
14
+ after(:all) { savon.unmock! }
15
+
16
+ describe '#execute!' do
17
+ let(:xml_payload) { File.read(fixture_file_path('xmls/valid_consultar_nfse_request.xml')) }
18
+ let(:request_payload) { "<ArquivoXML><![CDATA[#{xml_payload}]]></ArquivoXML>" }
19
+
20
+ before do
21
+ allow(subject).to receive(:to_xml).and_return(xml_payload)
22
+ savon.expects(:consultar_nfse_rps).with(message: request_payload).returns(response)
23
+ end
24
+
25
+ context 'valid request' do
26
+ let(:response) { File.read(fixture_file_path('xmls/valid_consultar_nfse_response.xml'))}
27
+
28
+ it 'returns a valid response' do
29
+ expect(subject.execute!).to be_successful
30
+ end
31
+ end
32
+
33
+ context 'invalid request' do
34
+ let(:response) { File.read(fixture_file_path('xmls/invalid_consultar_nfse_response.xml'))}
35
+
36
+ it 'returns a invalid response' do
37
+ expect(subject.execute!).to_not be_successful
38
+ end
39
+
40
+ it 'returns a error message' do
41
+ expect(subject.execute!.error_message).to eq('RPS NAO ENCONTRADO')
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+ require 'savon/mock/spec_helper'
3
+
4
+ RSpec.describe NfseGyn::GerarNfse do
5
+ include Savon::SpecHelper
6
+
7
+ subject { described_class.new(nota_fiscal_info) }
8
+
9
+ let(:nota_fiscal_info) { {} }
10
+
11
+ before(:all) { savon.mock! }
12
+ after(:all) { savon.unmock! }
13
+
14
+ describe '#to_xml' do
15
+ it 'should call GerarNfseXML builder class' do
16
+ expect_any_instance_of(NfseGyn::GerarNfseXML).to receive(:to_xml).once
17
+ subject.to_xml
18
+ end
19
+ end
20
+
21
+ describe '#execute!' do
22
+ let(:xml_payload) { File.read(fixture_file_path('xmls/valid_gerar_nfse_request.xml')) }
23
+ let(:request_payload) { "<ArquivoXML><![CDATA[#{xml_payload}]]></ArquivoXML>" }
24
+
25
+ before do
26
+ allow(subject).to receive(:to_xml).and_return(xml_payload)
27
+ savon.expects(:gerar_nfse).with(message: request_payload).returns(response)
28
+ end
29
+
30
+ context 'valid request' do
31
+ let(:response) { File.read(fixture_file_path('xmls/valid_gerar_nfse_response.xml'))}
32
+
33
+ it 'returns a valid response' do
34
+ expect(subject.execute!).to be_successful
35
+ end
36
+ end
37
+
38
+ context 'invalid request' do
39
+ let(:response) { File.read(fixture_file_path('xmls/invalid_gerar_nfse_response.xml'))}
40
+
41
+ it 'returns a invalid response' do
42
+ expect(subject.execute!).to_not be_successful
43
+ end
44
+
45
+ it 'returns a error message' do
46
+ expect(subject.execute!.error_message).to eq('Para essa Inscrição Municipal/CNPJ já existe um RPS informado com o mesmo número, série e tipo.')
47
+ end
48
+ end
49
+ end
50
+ end