sefazp 0.0.3 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/sefazp/mdfe.rb +63 -0
- data/lib/sefazp/nfe.rb +122 -0
- data/lib/sefazp/version.rb +4 -1
- data/lib/sefazp.rb +10 -0
- data/spec/fixtures/mdfe.xml +41 -0
- data/spec/fixtures/nfe.xml +1 -0
- data/spec/sefazp_spec.rb +25 -9
- metadata +7 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a97724d032576d75a7707f1c3d2fd4d19ca7e2fd
|
|
4
|
+
data.tar.gz: f35c8c2a4949b1c08ff9853e195c67938ec0a0ae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 339ddb0514aab29ab48e9be12300a6f35b8c28771239f33b22695bc9af0ca6077774cbaf523b9983a404cdc79c06694994ba6802295e2b3a928416d88632564a
|
|
7
|
+
data.tar.gz: 17985a4ed0a88ba2f366ce4d55e76fd77d99a1a410ac6fe9e4fa7ba1b005ed840995d9a6f0048f6a1b55d9b5ca920f787419e31d7ec1282e97003e5633630b02
|
data/lib/sefazp/mdfe.rb
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
class Mdfe
|
|
2
|
+
def initialize(xml_content)
|
|
3
|
+
@xml_content = xml_content
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def parse
|
|
7
|
+
# begin
|
|
8
|
+
doc = REXML::Document.new(@xml_content)
|
|
9
|
+
keys = Array.new
|
|
10
|
+
municipio_do_emitente = doc.elements["mdfeProc/MDFe/infMDFe/emit/enderEmit/cMun"].get_text.to_s
|
|
11
|
+
municipio_de_origem = doc.elements["mdfeProc/MDFe/infMDFe/ide/infMunCarrega/cMunCarrega"].get_text.to_s
|
|
12
|
+
municipio_de_destino = doc.elements["mdfeProc/MDFe/infMDFe/infDoc/infMunDescarga/cMunDescarga"].get_text.to_s
|
|
13
|
+
numero = doc.elements["mdfeProc/MDFe/infMDFe/ide/nMDF"].get_text.to_s
|
|
14
|
+
serie = doc.elements["mdfeProc/MDFe/infMDFe/ide/serie"].get_text.to_s
|
|
15
|
+
chave_de_acesso = doc.elements["mdfeProc/MDFe/infMDFe"].attributes["Id"].to_s
|
|
16
|
+
cnpj_do_emitente = doc.elements["mdfeProc/MDFe/infMDFe/emit/CNPJ"].get_text.to_s
|
|
17
|
+
inscricao_estadual_do_emitente = doc.elements["mdfeProc/MDFe/infMDFe/emit/IE"].get_text.to_s
|
|
18
|
+
nome_do_emitente = doc.elements["mdfeProc/MDFe/infMDFe/emit/xNome"].get_text.to_s
|
|
19
|
+
nome_fantasia_do_emitente = doc.elements["mdfeProc/MDFe/infMDFe/emit/xFant"].get_text.to_s
|
|
20
|
+
logradouro_do_emitente = doc.elements["mdfeProc/MDFe/infMDFe/emit/enderEmit/xLgr"].get_text.to_s
|
|
21
|
+
numero_do_emitente = doc.elements["mdfeProc/MDFe/infMDFe/emit/enderEmit/nro"].get_text.to_s
|
|
22
|
+
complemento_do_emitente = doc.elements["mdfeProc/MDFe/infMDFe/emit/enderEmit/xCpl"].get_text.to_s
|
|
23
|
+
bairro_do_emitente = doc.elements["mdfeProc/MDFe/infMDFe/emit/enderEmit/xBairro"].get_text.to_s
|
|
24
|
+
cep_do_emitente = doc.elements["mdfeProc/MDFe/infMDFe/emit/enderEmit/CEP"].get_text.to_s
|
|
25
|
+
placa_do_veiculo = doc.elements["mdfeProc/MDFe/infMDFe/infModal/rodo/veicTracao/placa"].get_text.to_s
|
|
26
|
+
uf_do_veiculo = doc.elements["mdfeProc/MDFe/infMDFe/infModal/rodo/veicTracao/UF"].get_text.to_s
|
|
27
|
+
nome_do_motorista = doc.elements["mdfeProc/MDFe/infMDFe/infModal/rodo/veicTracao/condutor/xNome"].get_text.to_s
|
|
28
|
+
cpf_do_motorista = doc.elements["mdfeProc/MDFe/infMDFe/infModal/rodo/veicTracao/condutor/CPF"].get_text.to_s
|
|
29
|
+
emissao = doc.elements["mdfeProc/MDFe/infMDFe/ide/dhEmi"].get_text.to_s
|
|
30
|
+
if doc.get_elements("mdfeProc/MDFe/infMDFe/infDoc/infMunDescarga/infCTe")
|
|
31
|
+
doc.get_elements("mdfeProc/MDFe/infMDFe/infDoc/infMunDescarga/infCTe").each do |key|
|
|
32
|
+
keys << key.elements["chCTe"].get_text.to_s
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
municipio_do_emitente: municipio_do_emitente,
|
|
38
|
+
municipio_de_origem: municipio_de_origem,
|
|
39
|
+
municipio_de_destino: municipio_de_destino,
|
|
40
|
+
numero: numero,
|
|
41
|
+
serie: serie,
|
|
42
|
+
chave_de_acesso: chave_de_acesso,
|
|
43
|
+
cnpj_do_emitente: cnpj_do_emitente,
|
|
44
|
+
inscricao_estadual_do_emitente: inscricao_estadual_do_emitente,
|
|
45
|
+
nome_do_emitente: nome_do_emitente,
|
|
46
|
+
nome_fantasia_do_emitente: nome_fantasia_do_emitente,
|
|
47
|
+
logradouro_do_emitente: logradouro_do_emitente,
|
|
48
|
+
numero_do_emitente: numero_do_emitente,
|
|
49
|
+
complemento_do_emitente: complemento_do_emitente,
|
|
50
|
+
bairro_do_emitente: bairro_do_emitente,
|
|
51
|
+
cep_do_emitente: cep_do_emitente,
|
|
52
|
+
placa_do_veiculo: placa_do_veiculo,
|
|
53
|
+
uf_do_veiculo: uf_do_veiculo,
|
|
54
|
+
nome_do_motorista: nome_do_motorista,
|
|
55
|
+
cpf_do_motorista: cpf_do_motorista,
|
|
56
|
+
emissao: emissao,
|
|
57
|
+
keys: keys
|
|
58
|
+
}
|
|
59
|
+
# rescue
|
|
60
|
+
# return nil
|
|
61
|
+
# end
|
|
62
|
+
end
|
|
63
|
+
end
|
data/lib/sefazp/nfe.rb
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
class Nfe
|
|
2
|
+
def initialize(xml_content)
|
|
3
|
+
@xml_content = xml_content
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def parse
|
|
7
|
+
begin
|
|
8
|
+
doc = REXML::Document.new(@xml_content)
|
|
9
|
+
municipio_do_emitente = doc.elements["nfeProc/NFe/infNFe/emit/enderEmit/cMun"].get_text.to_s
|
|
10
|
+
municipio_do_destinatario = doc.elements["nfeProc/NFe/infNFe/dest/enderDest/cMun"].get_text.to_s
|
|
11
|
+
chave_de_acesso = doc.elements["nfeProc/protNFe/infProt/chNFe"].get_text.to_s
|
|
12
|
+
numero = doc.elements["nfeProc/NFe/infNFe/ide/nNF"].get_text.to_s
|
|
13
|
+
serie = doc.elements["nfeProc/NFe/infNFe/ide/serie"].get_text.to_s
|
|
14
|
+
natureza_da_operacao = doc.elements["nfeProc/NFe/infNFe/ide/natOp"].get_text.to_s
|
|
15
|
+
protocolo_de_autorizacao = "#{doc.elements['nfeProc/protNFe/infProt/nProt'].get_text.to_s} #{doc.elements['nfeProc/protNFe/infProt/dhRecbto'].get_text.to_s}"
|
|
16
|
+
cnpj_do_emitente = doc.elements["nfeProc/NFe/infNFe/emit/CNPJ"].get_text.to_s
|
|
17
|
+
inscricao_estadual_do_emitente = doc.elements["nfeProc/NFe/infNFe/emit/IE"].get_text.to_s
|
|
18
|
+
nome_do_emitente = doc.elements["nfeProc/NFe/infNFe/emit/xNome"].get_text.to_s
|
|
19
|
+
logradouro_do_emitente = doc.elements["nfeProc/NFe/infNFe/emit/enderEmit/xLgr"].get_text.to_s
|
|
20
|
+
numero_do_emitente = doc.elements["nfeProc/NFe/infNFe/emit/enderEmit/nro"].get_text.to_s
|
|
21
|
+
bairro_do_emitente = doc.elements["nfeProc/NFe/infNFe/emit/enderEmit/xBairro"].get_text.to_s
|
|
22
|
+
cep_do_emitente = doc.elements["nfeProc/NFe/infNFe/emit/enderEmit/CEP"].get_text.to_s
|
|
23
|
+
telefone_do_emitente = doc.elements["nfeProc/NFe/infNFe/emit/enderEmit/fone"].get_text.to_s
|
|
24
|
+
if doc.elements["nfeProc/NFe/infNFe/dest/CNPJ"]
|
|
25
|
+
documento_do_destinatario = doc.elements["nfeProc/NFe/infNFe/dest/CNPJ"].get_text.to_s
|
|
26
|
+
else
|
|
27
|
+
documento_do_destinatario = doc.elements["nfeProc/NFe/infNFe/dest/CPF"].get_text.to_s
|
|
28
|
+
end
|
|
29
|
+
inscricao_estadual_do_destinatario = doc.elements["nfeProc/NFe/infNFe/dest/IE"].get_text.to_s
|
|
30
|
+
nome_do_destinatario = doc.elements["nfeProc/NFe/infNFe/dest/xNome"].get_text.to_s
|
|
31
|
+
logradouro_do_destinatario = doc.elements["nfeProc/NFe/infNFe/dest/enderDest/xLgr"].get_text.to_s
|
|
32
|
+
numero_do_destinatario = doc.elements["nfeProc/NFe/infNFe/dest/enderDest/nro"].get_text.to_s
|
|
33
|
+
bairro_do_destinatario = doc.elements["nfeProc/NFe/infNFe/dest/enderDest/xBairro"].get_text.to_s
|
|
34
|
+
cep_do_destinatario = doc.elements["nfeProc/NFe/infNFe/dest/enderDest/CEP"].get_text.to_s
|
|
35
|
+
telefone_do_destinatario = doc.elements["nfeProc/NFe/infNFe/dest/enderDest/fone"].get_text.to_s
|
|
36
|
+
data_de_emissao = doc.elements["nfeProc/NFe/infNFe/ide/dEmi"].get_text.to_s
|
|
37
|
+
data_de_entrada_saida = doc.elements["nfeProc/NFe/infNFe/ide/dSaiEnt"].get_text.to_s
|
|
38
|
+
hora_de_entrada_saida = doc.elements["nfeProc/NFe/infNFe/ide/hSaiEnt"].get_text.to_s
|
|
39
|
+
base_de_calculo_do_icms = doc.elements["nfeProc/NFe/infNFe/total/ICMSTot/vBC"].get_text.to_s
|
|
40
|
+
valor_do_icms = doc.elements["nfeProc/NFe/infNFe/total/ICMSTot/vICMS"].get_text.to_s
|
|
41
|
+
valor_dos_produtos = doc.elements["nfeProc/NFe/infNFe/total/ICMSTot/vProd"].get_text.to_s
|
|
42
|
+
valor_do_frete = doc.elements["nfeProc/NFe/infNFe/total/ICMSTot/vFrete"].get_text.to_s
|
|
43
|
+
valor_do_seguro = doc.elements["nfeProc/NFe/infNFe/total/ICMSTot/vSeg"].get_text.to_s
|
|
44
|
+
valor_do_desconto = doc.elements["nfeProc/NFe/infNFe/total/ICMSTot/vDesc"].get_text.to_s
|
|
45
|
+
valor_de_outras_despesas = doc.elements["nfeProc/NFe/infNFe/total/ICMSTot/vOutro"].get_text.to_s
|
|
46
|
+
valor_do_ipi = doc.elements["nfeProc/NFe/infNFe/total/ICMSTot/vIPI"].get_text.to_s
|
|
47
|
+
valor_total_da_nota = doc.elements["nfeProc/NFe/infNFe/total/ICMSTot/vNF"].get_text.to_s
|
|
48
|
+
frete_por_conta = doc.elements["nfeProc/NFe/infNFe/transp/modFrete"].get_text.to_s
|
|
49
|
+
quantidade = doc.elements["nfeProc/NFe/infNFe/transp/vol/qVol"].get_text.to_s
|
|
50
|
+
especie = doc.elements["nfeProc/NFe/infNFe/transp/vol/esp"].get_text.to_s
|
|
51
|
+
peso_bruto = doc.elements["nfeProc/NFe/infNFe/transp/vol/pesoB"].get_text.to_s
|
|
52
|
+
peso_liquido = doc.elements["nfeProc/NFe/infNFe/transp/vol/pesoL"].get_text.to_s
|
|
53
|
+
informacoes_complementares = doc.elements["nfeProc/NFe/infNFe/infAdic/infCpl"].get_text.to_s
|
|
54
|
+
|
|
55
|
+
items = []
|
|
56
|
+
doc.elements.each('nfeProc/NFe/infNFe/det') do |item|
|
|
57
|
+
prod = item[0]
|
|
58
|
+
imposto = item[1]
|
|
59
|
+
item_codigo = prod.elements['cProd'].get_text.to_s rescue nil
|
|
60
|
+
item_descricao = prod.elements['xProd'].get_text.to_s rescue nil
|
|
61
|
+
item_ncm_sh = prod.elements['NCM'].get_text.to_s rescue nil
|
|
62
|
+
item_cfop = prod.elements['CFOP'].get_text.to_s rescue nil
|
|
63
|
+
item_unidade = prod.elements['uCom'].get_text.to_s rescue nil
|
|
64
|
+
item_quantidade = prod.elements['qCom'].get_text.to_s rescue nil
|
|
65
|
+
item_valor_unitario = prod.elements['vUnCom'].get_text.to_s rescue nil
|
|
66
|
+
item_valor_total = prod.elements['vProd'].get_text.to_s rescue nil
|
|
67
|
+
item_cst = imposto.elements['ICMS/ICMS51/CST'].get_text.to_s rescue nil
|
|
68
|
+
item_base_de_calculo_do_icms = imposto.elements['ICMS/ICMS51/vBC'].get_text.to_s rescue nil
|
|
69
|
+
item_valor_do_icms = imposto.elements['ICMS/ICMS51/vICMS'].get_text.to_s rescue nil
|
|
70
|
+
item_aliquota_do_icms = imposto.elements['ICMS/ICMS51/pICMS'].get_text.to_s rescue nil
|
|
71
|
+
items << { "codigo" => item_codigo, "descricao" => item_descricao, "ncm_sh" => item_ncm_sh, "cfop" => item_cfop, "unidade" => item_unidade, "quantidade" => item_quantidade, "valor_unitario" => item_valor_unitario, "valor_total" => item_valor_total, "cst" => item_cst, "base_de_calculo_do_icms" => item_base_de_calculo_do_icms, "valor_do_icms" => item_valor_do_icms, "aliquota_do_icms" => item_aliquota_do_icms }
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
return {
|
|
75
|
+
municipio_do_emitente: municipio_do_emitente,
|
|
76
|
+
municipio_do_destinatario: municipio_do_destinatario,
|
|
77
|
+
chave_de_acesso: chave_de_acesso,
|
|
78
|
+
numero: numero,
|
|
79
|
+
serie: serie,
|
|
80
|
+
natureza_da_operacao: natureza_da_operacao,
|
|
81
|
+
protocolo_de_autorizacao: protocolo_de_autorizacao,
|
|
82
|
+
cnpj_do_emitente: cnpj_do_emitente,
|
|
83
|
+
inscricao_estadual_do_emitente: inscricao_estadual_do_emitente,
|
|
84
|
+
nome_do_emitente: nome_do_emitente,
|
|
85
|
+
logradouro_do_emitente: logradouro_do_emitente,
|
|
86
|
+
numero_do_emitente: numero_do_emitente,
|
|
87
|
+
bairro_do_emitente: bairro_do_emitente,
|
|
88
|
+
cep_do_emitente: cep_do_emitente,
|
|
89
|
+
telefone_do_emitente: telefone_do_emitente,
|
|
90
|
+
documento_do_destinatario: documento_do_destinatario,
|
|
91
|
+
inscricao_estadual_do_destinatario: inscricao_estadual_do_destinatario,
|
|
92
|
+
nome_do_destinatario: nome_do_destinatario,
|
|
93
|
+
logradouro_do_destinatario: logradouro_do_destinatario,
|
|
94
|
+
numero_do_destinatario: numero_do_destinatario,
|
|
95
|
+
bairro_do_destinatario: bairro_do_destinatario,
|
|
96
|
+
cep_do_destinatario: cep_do_destinatario,
|
|
97
|
+
telefone_do_destinatario: telefone_do_destinatario,
|
|
98
|
+
data_de_emissao: data_de_emissao,
|
|
99
|
+
data_de_entrada_saida: data_de_entrada_saida,
|
|
100
|
+
hora_de_entrada_saida: hora_de_entrada_saida,
|
|
101
|
+
base_de_calculo_do_icms: base_de_calculo_do_icms,
|
|
102
|
+
valor_do_icms: valor_do_icms,
|
|
103
|
+
valor_dos_produtos: valor_dos_produtos,
|
|
104
|
+
valor_do_frete: valor_do_frete,
|
|
105
|
+
valor_do_seguro: valor_do_seguro,
|
|
106
|
+
valor_do_desconto: valor_do_desconto,
|
|
107
|
+
valor_de_outras_despesas: valor_de_outras_despesas,
|
|
108
|
+
valor_do_ipi: valor_do_ipi,
|
|
109
|
+
valor_total_da_nota: valor_total_da_nota,
|
|
110
|
+
frete_por_conta: frete_por_conta,
|
|
111
|
+
quantidade: quantidade,
|
|
112
|
+
especie: especie,
|
|
113
|
+
peso_bruto: peso_bruto,
|
|
114
|
+
peso_liquido: peso_liquido,
|
|
115
|
+
informacoes_complementares: informacoes_complementares,
|
|
116
|
+
items: items
|
|
117
|
+
}
|
|
118
|
+
rescue
|
|
119
|
+
return nil
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
data/lib/sefazp/version.rb
CHANGED
data/lib/sefazp.rb
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
require "sefazp/version"
|
|
2
|
+
require "sefazp/mdfe"
|
|
2
3
|
require "sefazp/cte"
|
|
4
|
+
require "sefazp/nfe"
|
|
3
5
|
require "rexml/document"
|
|
4
6
|
|
|
5
7
|
module Sefazp
|
|
6
8
|
extend self
|
|
7
9
|
|
|
10
|
+
def parse_mdfe(xml_content)
|
|
11
|
+
Mdfe.new(xml_content).parse
|
|
12
|
+
end
|
|
13
|
+
|
|
8
14
|
def parse_cte(xml_content)
|
|
9
15
|
Cte.new(xml_content).parse
|
|
10
16
|
end
|
|
17
|
+
|
|
18
|
+
def parse_nfe(xml_content)
|
|
19
|
+
Nfe.new(xml_content).parse
|
|
20
|
+
end
|
|
11
21
|
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><mdfeProc xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"><MDFe xmlns="http://www.portalfiscal.inf.br/mdfe"><infMDFe versao="1.00" Id="MDFe35150209494507000113580010000020221000020224"><ide><cUF>35</cUF><tpAmb>1</tpAmb><tpEmit>1</tpEmit><mod>58</mod><serie>1</serie><nMDF>2022</nMDF><cMDF>00002022</cMDF><cDV>4</cDV><modal>1</modal><dhEmi>2015-02-11T10:09:00</dhEmi><tpEmis>1</tpEmis><procEmi>0</procEmi><verProc>TrustFiles</verProc><UFIni>SP</UFIni><UFFim>GO</UFFim><infMunCarrega><cMunCarrega>3550308</cMunCarrega><xMunCarrega>SAO PAULO</xMunCarrega></infMunCarrega><infPercurso><UFPer>MG</UFPer></infPercurso></ide><emit><CNPJ>09494507000113</CNPJ><IE>714104565119</IE><xNome>COOPERATIVA DE TRANSPORTES DE CARGAS COOPEVIN</xNome><xFant>COOPEVIN - VILA MARIA - IRANI / SAO ROBERTO</xFant><enderEmit><xLgr>RUA SANTA CRUZ</xLgr><nro>481</nro><xCpl>SALA 1</xCpl><xBairro>JD JUNCO</xBairro><cMun>3556701</cMun><xMun>VINHEDO</xMun><CEP>13280000</CEP><UF>SP</UF></enderEmit></emit><infModal versaoModal="1.00"><rodo xmlns="http://www.portalfiscal.inf.br/mdfe"><RNTRC>47808906</RNTRC><veicTracao><placa>NYB5954</placa><tara>0</tara><capKG>0</capKG><capM3>0</capM3><condutor><xNome>PAULO HENRIQUE S SILVA FERNANDES</xNome><CPF>05964921620</CPF></condutor><tpRod>02</tpRod><tpCar>05</tpCar><UF>MG</UF></veicTracao></rodo></infModal><infDoc><infMunDescarga><cMunDescarga>5208707</cMunDescarga><xMunDescarga>GOIANIA</xMunDescarga><infCTe><chCTe>35150209494507000113570010000125281000000011</chCTe></infCTe><infCTe><chCTe>35150209494507000113570010000125271000000014</chCTe></infCTe></infMunDescarga></infDoc><tot><qCTe>2</qCTe><vCarga>15584.16</vCarga><cUnid>01</cUnid><qCarga>5070.0000</qCarga></tot></infMDFe><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI="#MDFe35150209494507000113580010000020221000020224"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue>ulG9nxW/w+76uPF+I56uvUDfUZ8=</DigestValue></Reference></SignedInfo><SignatureValue>G2iLH2P1TlZSNMNUPlt6jjtjDO+7FxFBnmHsr7DCuxdX8XbueRecIng2juNRrjnHNNtFCXEG6gOi
|
|
2
|
+
6pGt8dxxLoCyNBkP4RfPRuHsrg34PD06iW53Q5odd12v50bN2iEAbewvUOV9f3eEp+3isELptbSt
|
|
3
|
+
4vdk9+dwOoEucS1I5PWWDW/7Z8Ws/H3r+tEZLaXbWlJ+VVigSRaEZieCaFax24v0daXBZb68u47G
|
|
4
|
+
AG2ma0dgXsPBlJD93Tlx/ukhRcAg46gIFeiaL1AxQi2nVJN5IoUmUwIxi6as1CUH2dWa+ojWQ2xO
|
|
5
|
+
j9n7CmZmIIT7ZNsu4wlC+amtuylrJEe5lWRSAQ==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIICjCCBfKgAwIBAgIIW2nsFvl38/owDQYJKoZIhvcNAQELBQAwdTELMAkGA1UEBhMCQlIxEzAR
|
|
6
|
+
BgNVBAoTCklDUC1CcmFzaWwxNjA0BgNVBAsTLVNlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFs
|
|
7
|
+
IGRvIEJyYXNpbCAtIFJGQjEZMBcGA1UEAxMQQUMgU0VSQVNBIFJGQiB2MjAeFw0xNDA2MzAxNDE4
|
|
8
|
+
MDBaFw0xNTA2MzAxNDE4MDBaMIHwMQswCQYDVQQGEwJCUjELMAkGA1UECBMCU1AxEDAOBgNVBAcT
|
|
9
|
+
B1ZJTkhFRE8xEzARBgNVBAoTCklDUC1CcmFzaWwxNjA0BgNVBAsTLVNlY3JldGFyaWEgZGEgUmVj
|
|
10
|
+
ZWl0YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEWMBQGA1UECxMNUkZCIGUtQ05QSiBBMTEWMBQG
|
|
11
|
+
A1UECxMNQVIgQ0RMSlVORElBSTFFMEMGA1UEAxM8Q09PUEVSQVRJVkEgREUgVFJBTlNQT1JURVMg
|
|
12
|
+
REUgQ0FSR0FTIENPT1BFVklOOjA5NDk0NTA3MDAwMTEzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
|
13
|
+
MIIBCgKCAQEAq0WAlyq2tsMRssnOXJ2sHX/Myy9lGFfnDVmgDdGp5lFpqfr9RkBTJHE6yJbaAkaz
|
|
14
|
+
MlRt2gIkTRUlMINf1Z3mfFgodJ0CsEszy5ArvbiZCAOM2qb8OQwdqAAFkxFdLcfeZyCaC0jxQAC2
|
|
15
|
+
6UMPAAvue6+aIVZTyBwkdjS+TMuonZ74bdEFa/oJp23fOuPizahCp+BmzNMzIxSKZvtW6vhOjQz8
|
|
16
|
+
p/0ykpmt89IEIzlp+QZ6h39NJB1kyDCMxIC4sSWq/ESXnkRBj4drilotq54ZOJ9D0XZ6j6XU8Zpj
|
|
17
|
+
TxAsUEy6bpOec9RiBDFXvRh8Q3qJPQHUoZUz5fLAtsjJYAppewIDAQABo4IDIDCCAxwwgZkGCCsG
|
|
18
|
+
AQUFBwEBBIGMMIGJMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3LmNlcnRpZmljYWRvZGlnaXRhbC5j
|
|
19
|
+
b20uYnIvY2FkZWlhcy9zZXJhc2FyZmJ2Mi5wN2IwPQYIKwYBBQUHMAGGMWh0dHA6Ly9vY3NwLmNl
|
|
20
|
+
cnRpZmljYWRvZGlnaXRhbC5jb20uYnIvc2VyYXNhcmZidjIwCQYDVR0TBAIwADAfBgNVHSMEGDAW
|
|
21
|
+
gBSyoMQ9Rp58yIVsCB4QMpRlRnBBczBxBgNVHSAEajBoMGYGBmBMAQIBDTBcMFoGCCsGAQUFBwIB
|
|
22
|
+
Fk5odHRwOi8vcHVibGljYWNhby5jZXJ0aWZpY2Fkb2RpZ2l0YWwuY29tLmJyL3JlcG9zaXRvcmlv
|
|
23
|
+
L2RwYy9kZWNsYXJhY2FvLXJmYi5wZGYwgfMGA1UdHwSB6zCB6DBKoEigRoZEaHR0cDovL3d3dy5j
|
|
24
|
+
ZXJ0aWZpY2Fkb2RpZ2l0YWwuY29tLmJyL3JlcG9zaXRvcmlvL2xjci9zZXJhc2FyZmJ2Mi5jcmww
|
|
25
|
+
RKBCoECGPmh0dHA6Ly9sY3IuY2VydGlmaWNhZG9zLmNvbS5ici9yZXBvc2l0b3Jpby9sY3Ivc2Vy
|
|
26
|
+
YXNhcmZidjIuY3JsMFSgUqBQhk5odHRwOi8vcmVwb3NpdG9yaW8uaWNwYnJhc2lsLmdvdi5ici9s
|
|
27
|
+
Y3IvU2VyYXNhL3JlcG9zaXRvcmlvL2xjci9zZXJhc2FyZmJ2Mi5jcmwwDgYDVR0PAQH/BAQDAgXg
|
|
28
|
+
MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDCBuQYDVR0RBIGxMIGugRRSQVVMQENPT1BF
|
|
29
|
+
VklOLkNPTS5CUqAoBgVgTAEDAqAfEx1SQVVMIEFSRUxMQU5PIENBTERFSVJBIEZSQU5DT6AZBgVg
|
|
30
|
+
TAEDA6AQEw4wOTQ5NDUwNzAwMDExM6A4BgVgTAEDBKAvEy0yMzAyMTk2MDA1NzE4MDcxODYxMDAw
|
|
31
|
+
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCgFwYFYEwBAwegDhMMMDAwMDAwMDAwMDAwMA0GCSqGSIb3
|
|
32
|
+
DQEBCwUAA4ICAQAotdPAq9tm94fLGW8JNjgcvcUM4mLupLVXVbZLz0YDLFxpW1zX7z8OXWzdfuYv
|
|
33
|
+
HkrEunKZAqw4FYN6tjz4/kuQqG7B8a62V2/Bl2zzfU+L4oE3mFIR09ZJsBbloLML2A1QWa2/IPkY
|
|
34
|
+
Vy0FMn/rUzKgvfXStFO0LakzxG2no31QczY6RSXSVCkX5Qf8rH5ZyVciNfixKaNE3uxm0Pe5a86a
|
|
35
|
+
uTmVz+A0ZjlDTABzaXZdpMK4vZxFeBAgJDMIwKVUU0G2fHNS13nD7IfSaeXu8eECG8+J7HENY3F1
|
|
36
|
+
9SmiohPwEpAKMd8FghxztIpSCmwhzBheqawC986QVqO+N7lLgEbFWQBWAayrLk5Nd3JcUDx0IFm+
|
|
37
|
+
xpCEj74JYXTEtdHZL6Z0nVN451YMaa0m3gR8XqQ/PU6d7F1dV2tTNNd5XBZBqRnaM86BKefaADcF
|
|
38
|
+
qCP+1BqvCzIN7+uCzwilFTmerKiRZuLtVdSHpsW9/cy7/S6Dy5tWaLxcW0ay9ihxQO3uD0uKCP6k
|
|
39
|
+
K9tJ9gEDPb89s+82KGJiCMOpc3XAoJWwehoxVsq2car7CLjENMGHkWr9ZVQiNsJNiZ4Ud4YjQq7B
|
|
40
|
+
4bSD/txudncxy828aTdE1KMalFw+8B7bZ5nIjEcDqk7KgaM81IUGvfxlkGA8A9ZhqdyPfcOCl8Wz
|
|
41
|
+
ibswKW3zzZiofQ==</X509Certificate></X509Data></KeyInfo></Signature></MDFe><protMDFe versao="1.00"><infProt Id="MDFe935150001357715"><tpAmb>1</tpAmb><verAplic>RS20141006133919</verAplic><chMDFe>35150209494507000113580010000020221000020224</chMDFe><dhRecbto>2015-02-11T10:10:47</dhRecbto><nProt>935150001357715</nProt><digVal>ulG9nxW/w+76uPF+I56uvUDfUZ8=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso do MDF-e</xMotivo></infProt></protMDFe></mdfeProc>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"><NFe xmlns="http://www.portalfiscal.inf.br/nfe"><infNFe versao="2.00" Id="NFe35131110498628000112550010000005781414285856"><ide><cUF>35</cUF><cNF>41428585</cNF><natOp>OUTRAS SAIDAS OU PRESTACOES DE SERVICO NAO ESPECIFICADAS</natOp><indPag>2</indPag><mod>55</mod><serie>1</serie><nNF>578</nNF><dEmi>2013-11-22</dEmi><dSaiEnt>2013-11-22</dSaiEnt><hSaiEnt>00:00:00</hSaiEnt><tpNF>1</tpNF><cMunFG>3505708</cMunFG><tpImp>1</tpImp><tpEmis>1</tpEmis><cDV>6</cDV><tpAmb>1</tpAmb><finNFe>1</finNFe><procEmi>0</procEmi><verProc>2.1.4</verProc></ide><emit><CNPJ>10498628000112</CNPJ><xNome>BIO SERVICE GROUP EMBALAGENS LTDA</xNome><xFant>BIO SERVICE</xFant><enderEmit><xLgr>RUA LOURIVAL MARQUES DOS SANTOS</xLgr><nro>130</nro><xCpl>ALA SUL</xCpl><xBairro>JARDIM BELVAL</xBairro><cMun>3505708</cMun><xMun>BARUERI</xMun><UF>SP</UF><CEP>06422143</CEP><cPais>1058</cPais><xPais>BRASIL</xPais><fone>1142471227</fone></enderEmit><IE>206269625112</IE><CRT>3</CRT></emit><dest><CNPJ>01377724000464</CNPJ><xNome>BRASALPLA BRASIL - INDUSTRIA DE EMBALAGENS LTDA.</xNome><enderDest><xLgr>RUA AV JOSE MAMPRIM</xLgr><nro>999</nro><xBairro>SANTO ANTONIO</xBairro><cMun>3527306</cMun><xMun>LOUVEIRA</xMun><UF>SP</UF><CEP>13290000</CEP><cPais>1058</cPais><xPais>BRASIL</xPais><fone>1938488034</fone></enderDest><IE>421076409112</IE><email>brsp-nfe@alpla.com</email></dest><det nItem="1"><prod><cProd>IE-000063</cProd><cEAN /><xProd>COD 500177-CINTA QUADRADA</xProd><NCM>48191000</NCM><CFOP>5949</CFOP><uCom>PC</uCom><qCom>120.0000</qCom><vUnCom>1.0800000000</vUnCom><vProd>129.60</vProd><cEANTrib /><uTrib>PC</uTrib><qTrib>120.0000</qTrib><vUnTrib>1.0800000000</vUnTrib><indTot>1</indTot></prod><imposto><ICMS><ICMS40><orig>0</orig><CST>41</CST></ICMS40></ICMS><IPI><cEnq>01</cEnq><IPINT><CST>53</CST></IPINT></IPI><PIS><PISNT><CST>07</CST></PISNT></PIS><COFINS><COFINSNT><CST>07</CST></COFINSNT></COFINS></imposto></det><det nItem="2"><prod><cProd>IE-000010</cProd><cEAN /><xProd>BANDEJA NO 2 1 - FP</xProd><NCM>48191000</NCM><CFOP>5949</CFOP><uCom>PC</uCom><qCom>1650.0000</qCom><vUnCom>3.8800000000</vUnCom><vProd>6402.00</vProd><cEANTrib /><uTrib>PC</uTrib><qTrib>1650.0000</qTrib><vUnTrib>3.8800000000</vUnTrib><indTot>1</indTot></prod><imposto><ICMS><ICMS40><orig>0</orig><CST>41</CST></ICMS40></ICMS><IPI><cEnq>01</cEnq><IPINT><CST>53</CST></IPINT></IPI><PIS><PISNT><CST>07</CST></PISNT></PIS><COFINS><COFINSNT><CST>07</CST></COFINSNT></COFINS></imposto></det><total><ICMSTot><vBC>0.00</vBC><vICMS>0.00</vICMS><vBCST>0.00</vBCST><vST>0.00</vST><vProd>6531.60</vProd><vFrete>0.00</vFrete><vSeg>0.00</vSeg><vDesc>0.00</vDesc><vII>0.00</vII><vIPI>0.00</vIPI><vPIS>0.00</vPIS><vCOFINS>0.00</vCOFINS><vOutro>0.00</vOutro><vNF>6531.60</vNF></ICMSTot></total><transp><modFrete>9</modFrete><vol><qVol>12</qVol><esp>pallets</esp><pesoL>3151.590</pesoL><pesoB>3580.000</pesoB></vol></transp><infAdic><infCpl>Nao incidencia do ICMS, conforme artigo 7 IX, Decreto n 45490/00 - OC.124283/1 OC.124283/1</infCpl><obsCont xCampo="email"><xTexto>brsp-nfe@alpla.com</xTexto></obsCont></infAdic></infNFe><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI="#NFe35131110498628000112550010000005781414285856"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue>ismcFIJHS9nr8r3AzH+bEy5s9Bw=</DigestValue></Reference></SignedInfo><SignatureValue>iQnOMmlXVRzMX0IRnsTVrwLumE6QDwROwMlgIyjXcb1R2HzsXdNluvR5cZ95O+w3GoiGuq6JaNtPlEOTzWAzgcAl8tfTXqgkVMkcPuSYYgaOvdlaVW3nkLxSLhqPvMy7n8Yl+83548OqU0fEYuQ9VdOieeVIpJuUrlUd8IS//KpiivjBFSSLnt9e2VwlFrS2rUoZbSyGXYXnTHGBIRREvBjMPbv/eASqVtcUOCvLr+Z0LQE3nhpoWtr3MIXW+8t21XH/GonDe8YDnk/BtXUrX3l+MlxFmsxNq/b1MvPzSvD/VBnNEH6jjp6HIp3xRduK/UvEUEN7vwmbghgfYaAwVw==</SignatureValue><KeyInfo><X509Data><X509Certificate>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</X509Certificate></X509Data></KeyInfo></Signature></NFe><protNFe versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe"><infProt><tpAmb>1</tpAmb><verAplic>SP_NFE_PL_006q</verAplic><chNFe>35131110498628000112550010000005781414285856</chNFe><dhRecbto>2013-11-22T14:23:28</dhRecbto><nProt>135130715901757</nProt><digVal>ismcFIJHS9nr8r3AzH+bEy5s9Bw=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe></nfeProc>
|
data/spec/sefazp_spec.rb
CHANGED
|
@@ -1,24 +1,40 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
3
|
describe Sefazp do
|
|
4
|
+
let(:mdfe) { File.open("spec/fixtures/mdfe.xml", "r") }
|
|
4
5
|
let(:cte_sem_exped_receb) { File.open("spec/fixtures/cte_sem_exped_receb.xml", "r") }
|
|
5
6
|
let(:cte_com_exped) { File.open("spec/fixtures/cte_com_exped.xml", "r") }
|
|
6
7
|
let(:cte_com_receb) { File.open("spec/fixtures/cte_com_receb.xml", "r") }
|
|
7
8
|
let(:cte_com_outros_documentos) { File.open("spec/fixtures/cte_com_outros_documentos.xml", "r") }
|
|
9
|
+
let(:nfe) { File.open("spec/fixtures/nfe.xml", "r") }
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
describe "parse_mdfe" do
|
|
12
|
+
it "should parse a mdfe" do
|
|
13
|
+
expect(Sefazp.parse_mdfe(mdfe)).to eq({ :municipio_do_emitente=>"3556701", :municipio_de_origem=>"3550308", :municipio_de_destino=>"5208707", :numero=>"2022", :serie=>"1", :chave_de_acesso=>"MDFe35150209494507000113580010000020221000020224", :cnpj_do_emitente=>"09494507000113", :inscricao_estadual_do_emitente=>"714104565119", :nome_do_emitente=>"COOPERATIVA DE TRANSPORTES DE CARGAS COOPEVIN", :nome_fantasia_do_emitente=>"COOPEVIN - VILA MARIA - IRANI / SAO ROBERTO", :logradouro_do_emitente=>"RUA SANTA CRUZ", :numero_do_emitente=>"481", :complemento_do_emitente=>"SALA 1", :bairro_do_emitente=>"JD JUNCO", :cep_do_emitente=>"13280000", :placa_do_veiculo=>"NYB5954", :uf_do_veiculo=>"MG", :nome_do_motorista=>"PAULO HENRIQUE S SILVA FERNANDES", :cpf_do_motorista=>"05964921620", :emissao=>"2015-02-11T10:09:00", :keys=>["35150209494507000113570010000125281000000011", "35150209494507000113570010000125271000000014"] })
|
|
14
|
+
end
|
|
11
15
|
end
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
describe "parse_cte" do
|
|
18
|
+
it "should parse a cte without exped and receb" do
|
|
19
|
+
expect(Sefazp.parse_cte(cte_sem_exped_receb)).to eq({ :expedidor=>false, :recebedor=>false, :municipio_do_emitente=>"3556701", :municipio_do_remetente=>"3106200", :municipio_do_destinatario=>"3529401", :municipio_do_expedidor=>nil, :municipio_do_recebedor=>nil, :municipio_de_origem=>"3106200", :municipio_de_destino=>"3529401", :municipio_de_emissao=>"3505708", :numero=>"15424", :serie=>"2", :chave_de_acesso=>"CTe35150110663500000167570020000154241000000014", :tipo_do_cte=>"0", :tipo_do_servico=>"0", :tomador_do_servico=>"0", :forma_de_pagamento=>"0", :codigo_do_cfop=>"6353", :descricao_do_cfop=>"ESTABELECIMENTO COMERCIAL", :cnpj_do_emitente=>"10663500000167", :inscricao_estadual_do_emitente=>"714107634116", :nome_do_emitente=>"ARELLANO VOSS TRANSPORTES LTDA.", :nome_fantasia_do_emitente=>"AVT - BARUERI - DAY BRASIL 1", :logradouro_do_emitente=>"RUA SANTA CRUZ", :numero_do_emitente=>"481", :bairro_do_emitente=>"BARRA FUNDA", :cep_do_emitente=>"13280000", :cnpj_do_remetente=>"49327943000384", :inscricao_estadual_do_remetente=>"0623502100062", :nome_do_remetente=>"DAY BRASIL S/A", :logradouro_do_remetente=>"R CALDAS DA RAINHA", :numero_do_remetente=>"1359", :bairro_do_remetente=>"SAO FRANCISCO", :cep_do_remetente=>"31255180", :cnpj_do_destinatario=>"00023779000160", :inscricao_estadual_do_destinatario=>"442195903117", :nome_do_destinatario=>"POLYSISTEM IMP E EXP DE POLICARBONATO LT", :logradouro_do_destinatario=>"RUA RINALDO CHIAROTTI", :numero_do_destinatario=>"491", :bairro_do_destinatario=>"SERTAOZINHO", :cep_do_destinatario=>"09372060", :cnpj_do_expedidor=>nil, :inscricao_estadual_do_expedidor=>nil, :nome_do_expedidor=>nil, :logradouro_do_expedidor=>nil, :numero_do_expedidor=>nil, :bairro_do_expedidor=>nil, :cep_do_expedidor=>nil, :cnpj_do_recebedor=>nil, :inscricao_estadual_do_recebedor=>nil, :nome_do_recebedor=>nil, :logradouro_do_recebedor=>nil, :numero_do_recebedor=>nil, :bairro_do_recebedor=>nil, :cep_do_recebedor=>nil, :produto_predominante=>"VARIOS", :unidade_de_medida=>"PECAS", :quantidade=>"225", :valor_da_mercadoria=>"45677.25", :responsavel=>"0", :valor_total=>"370.68", :valor_a_receber=>"370.68", :base_de_calculo=>"370.68", :aliquota_icms=>"12.00", :valor_icms=>"44.48", :lotacao=>"1", :data_prevista_de_entrega=>"2015-01-21", :tipo_do_veiculo=>"0", :placa_do_veiculo=>"EWJ1042", :uf_do_veiculo=>"SP", :renavan_do_veiculo=>"00547274670", :tara_em_kg_do_veiculo=>"15750", :capacidade_em_kg_do_veiculo=>"0", :capacidade_em_m3_do_veiculo=>"0", :nome_do_motorista=>"CELIO OLIVEIRA SANTOS", :cpf_do_motorista=>"12403654892", :rntrc=>"46072566", :emissao=>"2015-01-20T12:49:33", :frete=>"370.68", :pedagio=>"0.00", :outros=>"0.00", :keys=>["31150149327943000384550010000318811007008823"] })
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should parse a cte with exped" do
|
|
23
|
+
expect(Sefazp.parse_cte(cte_com_exped)).to eq({ :expedidor=>true, :recebedor=>false, :municipio_do_emitente=>"3556701", :municipio_do_remetente=>"3525003", :municipio_do_destinatario=>"3505708", :municipio_do_expedidor=>"3505708", :municipio_do_recebedor=>nil, :municipio_de_origem=>"3525003", :municipio_de_destino=>"3505708", :municipio_de_emissao=>"3505708", :numero=>"13634", :serie=>"2", :chave_de_acesso=>"CTe35141210663500000167570020000136341000000017", :tipo_do_cte=>"0", :tipo_do_servico=>"0", :tomador_do_servico=>"1", :forma_de_pagamento=>"0", :codigo_do_cfop=>"5353", :descricao_do_cfop=>"ESTABELECIMENTO COMERCIAL", :cnpj_do_emitente=>"10663500000167", :inscricao_estadual_do_emitente=>"714107634116", :nome_do_emitente=>"ARELLANO VOSS TRANSPORTES LTDA.", :nome_fantasia_do_emitente=>"AVT - BARUERI - DAY BRASIL 1", :logradouro_do_emitente=>"RUA SANTA CRUZ", :numero_do_emitente=>"481", :bairro_do_emitente=>"BARRA FUNDA", :cep_do_emitente=>"13280000", :cnpj_do_remetente=>"49327943000201", :inscricao_estadual_do_remetente=>"398067583115", :nome_do_remetente=>"DAY BRASIL S/A", :logradouro_do_remetente=>"RUA JOSE ALBINO PEREIRA", :numero_do_remetente=>"318", :bairro_do_remetente=>"JARDIM ALVORADA", :cep_do_remetente=>"06612001", :cnpj_do_destinatario=>"49327943001437", :inscricao_estadual_do_destinatario=>"206109326118", :nome_do_destinatario=>"DAY BRASIL S/A", :logradouro_do_destinatario=>"AV DR HUMBERTO GIANNELLA", :numero_do_destinatario=>"937", :bairro_do_destinatario=>"JD BELVAL", :cep_do_destinatario=>"06422130", :cnpj_do_expedidor=>"49327943001437", :inscricao_estadual_do_expedidor=>"206109326118", :nome_do_expedidor=>"DAY BRASIL S/A", :logradouro_do_expedidor=>"AV DR HUMBERTO GIANNELLA", :numero_do_expedidor=>"937", :bairro_do_expedidor=>"JARDIM BELVAL", :cep_do_expedidor=>"06422130", :cnpj_do_recebedor=>nil, :inscricao_estadual_do_recebedor=>nil, :nome_do_recebedor=>nil, :logradouro_do_recebedor=>nil, :numero_do_recebedor=>nil, :bairro_do_recebedor=>nil, :cep_do_recebedor=>nil, :produto_predominante=>"VARIOS", :unidade_de_medida=>"CAIXA", :quantidade=>"126", :valor_da_mercadoria=>"26908.91", :responsavel=>"0", :valor_total=>"643.64", :valor_a_receber=>"643.64", :base_de_calculo=>"643.64", :aliquota_icms=>"12.00", :valor_icms=>"77.24", :lotacao=>"1", :data_prevista_de_entrega=>"2014-12-13", :tipo_do_veiculo=>"0", :placa_do_veiculo=>"KFM0337", :uf_do_veiculo=>"DF", :renavan_do_veiculo=>"00185619878", :tara_em_kg_do_veiculo=>"0", :capacidade_em_kg_do_veiculo=>"0", :capacidade_em_m3_do_veiculo=>"0", :nome_do_motorista=>"ODETIO ALVES DA SILVA", :cpf_do_motorista=>"99815940830", :rntrc=>"46072566", :emissao=>"2014-12-12T13:40:44", :frete=>"336.01", :pedagio=>"0.00", :outros=>"307.63", :keys=>["35141249327943000201550020000193751005308451", "35141249327943000201550020000193801002879334", "35141249327943000201550020000193771001795565", "35141249327943000201550020000193741002231590", "35141249327943000201550020000193811009208874", "35141249327943000201550020000193791005119437", "35141249327943000201550020000193761004903116", "35141249327943000201550020000193781003499189"] })
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should parse a cte with receb" do
|
|
27
|
+
expect(Sefazp.parse_cte(cte_com_receb)).to eq({ :expedidor=>false, :recebedor=>true, :municipio_do_emitente=>"3556701", :municipio_do_remetente=>"3505708", :municipio_do_destinatario=>"3550308", :municipio_do_expedidor=>nil, :municipio_do_recebedor=>"3523107", :municipio_de_origem=>"3505708", :municipio_de_destino=>"3523107", :municipio_de_emissao=>"3505708", :numero=>"6726", :serie=>"1", :chave_de_acesso=>"CTe35140910663500000167570010000067261000000017", :tipo_do_cte=>"0", :tipo_do_servico=>"0", :tomador_do_servico=>"0", :forma_de_pagamento=>"0", :codigo_do_cfop=>"5352", :descricao_do_cfop=>"ESTABELECIMENTO INDUSTRIAL", :cnpj_do_emitente=>"10663500000167", :inscricao_estadual_do_emitente=>"714107634116", :nome_do_emitente=>"ARELLANO VOSS TRANSPORTES LTDA.", :nome_fantasia_do_emitente=>"AVT - BARUERI - JAGUARE", :logradouro_do_emitente=>"RUA SANTA CRUZ", :numero_do_emitente=>"481", :bairro_do_emitente=>"JARDIM JUNCO", :cep_do_emitente=>"13280000", :cnpj_do_remetente=>"44003911000148", :inscricao_estadual_do_remetente=>"206015980110", :nome_do_remetente=>"EMBALAGENS JAGUARE LTDA", :logradouro_do_remetente=>"RUA LOURIVAL MARQUES DOS SANTOS", :numero_do_remetente=>"50", :bairro_do_remetente=>"JARDIM BELVAL", :cep_do_remetente=>"06422143", :cnpj_do_destinatario=>"10251511000130", :inscricao_estadual_do_destinatario=>"148238754112", :nome_do_destinatario=>"LIQUID IDEIAS COMERCIO E SERVICOS LTDA - EPP", :logradouro_do_destinatario=>"RUA JOAO DE SOUZA DIAS", :numero_do_destinatario=>"143", :bairro_do_destinatario=>"CAMPO BELO", :cep_do_destinatario=>"04618000", :cnpj_do_expedidor=>nil, :inscricao_estadual_do_expedidor=>nil, :nome_do_expedidor=>nil, :logradouro_do_expedidor=>nil, :numero_do_expedidor=>nil, :bairro_do_expedidor=>nil, :cep_do_expedidor=>nil, :cnpj_do_recebedor=>"00561276000149", :inscricao_estadual_do_recebedor=>"379049157118", :nome_do_recebedor=>"CLAUDEONOR TEIXEIRA CAIRES FILHO - ME", :logradouro_do_recebedor=>"RUA EVANGELHO QUADRANGULAR", :numero_do_recebedor=>"119", :bairro_do_recebedor=>"VL VIRINIA", :cep_do_recebedor=>"08599000", :produto_predominante=>"PAPEL", :unidade_de_medida=>"PALLETS", :quantidade=>"10", :valor_da_mercadoria=>"3555.84", :responsavel=>"0", :valor_total=>"333.21", :valor_a_receber=>"333.21", :base_de_calculo=>"333.21", :aliquota_icms=>"12.00", :valor_icms=>"39.99", :lotacao=>"1", :data_prevista_de_entrega=>"2014-09-19", :tipo_do_veiculo=>"0", :placa_do_veiculo=>"BTP2474", :uf_do_veiculo=>"SP", :renavan_do_veiculo=>"638420024", :tara_em_kg_do_veiculo=>"0", :capacidade_em_kg_do_veiculo=>"0", :capacidade_em_m3_do_veiculo=>"0", :nome_do_motorista=>"CARLOS CALSOLARI SOBRINHO", :cpf_do_motorista=>"07946041888", :rntrc=>"46072566", :emissao=>"2014-09-18T20:23:07", :frete=>"304.12", :pedagio=>"29.09", :outros=>"0.00", :keys=>["35140944003911000148550010000670091528272072"] })
|
|
28
|
+
end
|
|
16
29
|
|
|
17
|
-
|
|
18
|
-
|
|
30
|
+
it "should parse a cte with outros documentos" do
|
|
31
|
+
expect(Sefazp.parse_cte(cte_com_outros_documentos)).to eq({ :expedidor=>false, :recebedor=>false, :municipio_do_emitente=>"3556701", :municipio_do_remetente=>"3505708", :municipio_do_destinatario=>"4208203", :municipio_do_expedidor=>nil, :municipio_do_recebedor=>nil, :municipio_de_origem=>"3505708", :municipio_de_destino=>"4208203", :municipio_de_emissao=>"3505708", :numero=>"4158", :serie=>"1", :chave_de_acesso=>"CTe35140310663500000167570010000041581000000017", :tipo_do_cte=>"0", :tipo_do_servico=>"0", :tomador_do_servico=>"0", :forma_de_pagamento=>"0", :codigo_do_cfop=>"6352", :descricao_do_cfop=>"ESTABELECIMENTO INDUSTRIAL", :cnpj_do_emitente=>"10663500000167", :inscricao_estadual_do_emitente=>"714107634116", :nome_do_emitente=>"ARELLANO VOSS TRANSPORTES LTDA.", :nome_fantasia_do_emitente=>"AVT - BARUERI", :logradouro_do_emitente=>"AV. DOS IMIGRANTES", :numero_do_emitente=>"327", :bairro_do_emitente=>"JARDIM JUNCO", :cep_do_emitente=>"13280000", :cnpj_do_remetente=>"10498628000112", :inscricao_estadual_do_remetente=>"206269625112", :nome_do_remetente=>"BIO SERVICE GROUP EMBALAGENS LTDA", :logradouro_do_remetente=>"RUA LOURIVAL MARQUES DOS SANTOS", :numero_do_remetente=>"130", :bairro_do_remetente=>"JARDIM BELVAL", :cep_do_remetente=>"06422143", :cnpj_do_destinatario=>"08833357000243", :inscricao_estadual_do_destinatario=>"256493286", :nome_do_destinatario=>"CVN COMERCIO IMPORT.EXPORT. E DISTRIB. DE PECAS AUTOM LTDA.", :logradouro_do_destinatario=>"RUA ROSA ORSI DALCOQUIO", :numero_do_destinatario=>"464", :bairro_do_destinatario=>"CORDEIROS", :cep_do_destinatario=>"88311720", :cnpj_do_expedidor=>nil, :inscricao_estadual_do_expedidor=>nil, :nome_do_expedidor=>nil, :logradouro_do_expedidor=>nil, :numero_do_expedidor=>nil, :bairro_do_expedidor=>nil, :cep_do_expedidor=>nil, :cnpj_do_recebedor=>nil, :inscricao_estadual_do_recebedor=>nil, :nome_do_recebedor=>nil, :logradouro_do_recebedor=>nil, :numero_do_recebedor=>nil, :bairro_do_recebedor=>nil, :cep_do_recebedor=>nil, :produto_predominante=>"PAPEL", :unidade_de_medida=>"PALLETS", :quantidade=>"1", :valor_da_mercadoria=>"200.00", :responsavel=>"0", :valor_total=>"260.45", :valor_a_receber=>"260.45", :base_de_calculo=>"260.45", :aliquota_icms=>"12.00", :valor_icms=>"31.25", :lotacao=>"1", :data_prevista_de_entrega=>"2014-03-29", :tipo_do_veiculo=>"0", :placa_do_veiculo=>"NPF1148", :uf_do_veiculo=>"SP", :renavan_do_veiculo=>"161073042", :tara_em_kg_do_veiculo=>"0", :capacidade_em_kg_do_veiculo=>"0", :capacidade_em_m3_do_veiculo=>"0", :nome_do_motorista=>"JOAO VITORINO", :cpf_do_motorista=>"02917896841", :rntrc=>"46072566", :emissao=>"2014-03-28T15:33:33", :frete=>"260.45", :pedagio=>"0.00", :outros=>"0.00", :keys=>["000667"] })
|
|
32
|
+
end
|
|
19
33
|
end
|
|
20
34
|
|
|
21
|
-
|
|
22
|
-
|
|
35
|
+
describe "parse_nfe" do
|
|
36
|
+
it "should parse a nfe" do
|
|
37
|
+
expect(Sefazp.parse_nfe(nfe)).to eq({ :municipio_do_emitente=>"3505708", :municipio_do_destinatario=>"3527306", :chave_de_acesso=>"35131110498628000112550010000005781414285856", :numero=>"578", :serie=>"1", :natureza_da_operacao=>"OUTRAS SAIDAS OU PRESTACOES DE SERVICO NAO ESPECIFICADAS", :protocolo_de_autorizacao=>"135130715901757 2013-11-22T14:23:28", :cnpj_do_emitente=>"10498628000112", :inscricao_estadual_do_emitente=>"206269625112", :nome_do_emitente=>"BIO SERVICE GROUP EMBALAGENS LTDA", :logradouro_do_emitente=>"RUA LOURIVAL MARQUES DOS SANTOS", :numero_do_emitente=>"130", :bairro_do_emitente=>"JARDIM BELVAL", :cep_do_emitente=>"06422143", :telefone_do_emitente=>"1142471227", :documento_do_destinatario=>"01377724000464", :inscricao_estadual_do_destinatario=>"421076409112", :nome_do_destinatario=>"BRASALPLA BRASIL - INDUSTRIA DE EMBALAGENS LTDA.", :logradouro_do_destinatario=>"RUA AV JOSE MAMPRIM", :numero_do_destinatario=>"999", :bairro_do_destinatario=>"SANTO ANTONIO", :cep_do_destinatario=>"13290000", :telefone_do_destinatario=>"1938488034", :data_de_emissao=>"2013-11-22", :data_de_entrada_saida=>"2013-11-22", :hora_de_entrada_saida=>"00:00:00", :base_de_calculo_do_icms=>"0.00", :valor_do_icms=>"0.00", :valor_dos_produtos=>"6531.60", :valor_do_frete=>"0.00", :valor_do_seguro=>"0.00", :valor_do_desconto=>"0.00", :valor_de_outras_despesas=>"0.00", :valor_do_ipi=>"0.00", :valor_total_da_nota=>"6531.60", :frete_por_conta=>"9", :quantidade=>"12", :especie=>"pallets", :peso_bruto=>"3580.000", :peso_liquido=>"3151.590", :informacoes_complementares=>"Nao incidencia do ICMS, conforme artigo 7 IX, Decreto n 45490/00 - OC.124283/1 OC.124283/1", :items=>[{"codigo"=>"IE-000063", "descricao"=>"COD 500177-CINTA QUADRADA", "ncm_sh"=>"48191000", "cfop"=>"5949", "unidade"=>"PC", "quantidade"=>"120.0000", "valor_unitario"=>"1.0800000000", "valor_total"=>"129.60", "cst"=>nil, "base_de_calculo_do_icms"=>nil, "valor_do_icms"=>nil, "aliquota_do_icms"=>nil}, {"codigo"=>"IE-000010", "descricao"=>"BANDEJA NO 2 1 - FP", "ncm_sh"=>"48191000", "cfop"=>"5949", "unidade"=>"PC", "quantidade"=>"1650.0000", "valor_unitario"=>"3.8800000000", "valor_total"=>"6402.00", "cst"=>nil, "base_de_calculo_do_icms"=>nil, "valor_do_icms"=>nil, "aliquota_do_icms"=>nil}] })
|
|
38
|
+
end
|
|
23
39
|
end
|
|
24
40
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sefazp
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexei Telles
|
|
@@ -52,12 +52,16 @@ files:
|
|
|
52
52
|
- Rakefile
|
|
53
53
|
- lib/sefazp.rb
|
|
54
54
|
- lib/sefazp/cte.rb
|
|
55
|
+
- lib/sefazp/mdfe.rb
|
|
56
|
+
- lib/sefazp/nfe.rb
|
|
55
57
|
- lib/sefazp/version.rb
|
|
56
58
|
- sefazp.gemspec
|
|
57
59
|
- spec/fixtures/cte_com_exped.xml
|
|
58
60
|
- spec/fixtures/cte_com_outros_documentos.xml
|
|
59
61
|
- spec/fixtures/cte_com_receb.xml
|
|
60
62
|
- spec/fixtures/cte_sem_exped_receb.xml
|
|
63
|
+
- spec/fixtures/mdfe.xml
|
|
64
|
+
- spec/fixtures/nfe.xml
|
|
61
65
|
- spec/sefazp_spec.rb
|
|
62
66
|
- spec/spec_helper.rb
|
|
63
67
|
homepage: ''
|
|
@@ -90,5 +94,7 @@ test_files:
|
|
|
90
94
|
- spec/fixtures/cte_com_outros_documentos.xml
|
|
91
95
|
- spec/fixtures/cte_com_receb.xml
|
|
92
96
|
- spec/fixtures/cte_sem_exped_receb.xml
|
|
97
|
+
- spec/fixtures/mdfe.xml
|
|
98
|
+
- spec/fixtures/nfe.xml
|
|
93
99
|
- spec/sefazp_spec.rb
|
|
94
100
|
- spec/spec_helper.rb
|