br_invoices_pdf 0.2.7 → 0.2.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4d8ffb07a7ddccdda717e66d7962338f6829f413
4
- data.tar.gz: 9185d96c8d79c492b0861cc449d72ea4ca01b0a3
3
+ metadata.gz: 3d5fedf25d5e25569830a505913e74691d14ed6f
4
+ data.tar.gz: 43565a22af7a9357a61da6d59fa599064b1aad75
5
5
  SHA512:
6
- metadata.gz: fffe964bad7628178056848cc6b2a7890dc599577c8ba565c0a3b523440138c6281320f5270097e75e671068077f0bd68878724843bea82eb7367cc30cf74501
7
- data.tar.gz: 1ea1f0d2eb53fa2bca910bcd4d3c388f48710379427389901948c8765ea356b1a7ff2fce29456bee25ce1c34439dad1337d2be7dd0ae656ee6f6791f0bc3fc68
6
+ metadata.gz: 88de5586f0aa1cbd9e8ba99ae910c1d3ad5dced47e8cdf3d6be22d8ecd4065e5b1bbb6b04ab64c5121bbf350bb6f4633a01a4d06cf51564773ee71be2d6b2f78
7
+ data.tar.gz: 44bceaf6290360d7c8c0b0cad2b6548aefa4c0dbf85db3d61ebb5fa7cd93ffe3a53200827f8767f7fa5d64d0b7eb5f2747e0af94b8aaded9b12ce1172b6cb841
data/CHANGELOG.md CHANGED
@@ -3,6 +3,7 @@
3
3
  ## CHANGELOG
4
4
 
5
5
  ### Unreleased
6
+ - [Corrigindo] NFC-e em contingência
6
7
 
7
8
  ### 0.2.7 [2017-10-06]
8
9
  - [Add] PDF generator to NFC-e
@@ -9,14 +9,17 @@ module BrInvoicesPdf
9
9
 
10
10
  module_function
11
11
 
12
- EMIT_ROOT_PATH = "#{Util::XmlLocate::ROOT_PATH}/emit"
12
+ def emit_root_path(xml)
13
+ "#{root_path(xml)}/emit"
14
+ end
13
15
 
14
16
  def execute(xml)
17
+ path = emit_root_path(xml)
15
18
  {
16
- name: locate_element(xml, "#{EMIT_ROOT_PATH}/xNome"),
17
- cnpj: locate_element(xml, "#{EMIT_ROOT_PATH}/CNPJ"),
18
- state_number: locate_element(xml, "#{EMIT_ROOT_PATH}/IE"),
19
- address: mount(xml, address_params(EMIT_ROOT_PATH, 'Emit'))
19
+ name: locate_element(xml, "#{path}/xNome"),
20
+ cnpj: locate_element(xml, "#{path}/CNPJ"),
21
+ state_number: locate_element(xml, "#{path}/IE"),
22
+ address: mount(xml, address_params(xml, path, 'Emit'))
20
23
  }
21
24
  end
22
25
  end
@@ -9,21 +9,27 @@ module BrInvoicesPdf
9
9
 
10
10
  module_function
11
11
 
12
- DEST_ROOT_PATH = "#{Util::XmlLocate::ROOT_PATH}/dest"
12
+ def dest_root_path(xml)
13
+ "#{root_path(xml)}/dest"
14
+ end
13
15
 
14
16
  def execute(xml)
15
17
  identification_type = identification_type_by(xml)
18
+ root_path = dest_root_path(xml)
19
+
16
20
  {
17
21
  identification_type: identification_type,
18
- identification: locate_element(xml, "#{DEST_ROOT_PATH}/#{identification_type}"),
19
- address: mount(xml, address_params(DEST_ROOT_PATH, 'Dest'))
22
+ identification: locate_element(xml, "#{root_path}/#{identification_type}"),
23
+ address: mount(xml, address_params(xml, root_path, 'Dest'))
20
24
  }
21
25
  end
22
26
 
23
27
  def identification_type_by(xml)
24
- return 'CNPJ' if locate_element(xml, "#{DEST_ROOT_PATH}/CNPJ")
25
- return 'CPF' if locate_element(xml, "#{DEST_ROOT_PATH}/CPF")
26
- return 'idEstrangeiro' if locate_element(xml, "#{DEST_ROOT_PATH}/idEstrangeiro")
28
+ root_path = dest_root_path(xml)
29
+
30
+ return 'CNPJ' if locate_element(xml, "#{root_path}/CNPJ")
31
+ return 'CPF' if locate_element(xml, "#{root_path}/CPF")
32
+ return 'idEstrangeiro' if locate_element(xml, "#{root_path}/idEstrangeiro")
27
33
  end
28
34
  private_class_method :identification_type_by
29
35
  end
@@ -8,7 +8,9 @@ module BrInvoicesPdf
8
8
 
9
9
  module_function
10
10
 
11
- EMISSION_ROOT_PATH = "#{Util::XmlLocate::ROOT_PATH}/ide"
11
+ def emission_root_path(xml)
12
+ "#{root_path(xml)}/ide"
13
+ end
12
14
 
13
15
  EMISSION_TYPES = {
14
16
  '1': 'Emissão normal',
@@ -22,27 +24,46 @@ module BrInvoicesPdf
22
24
  }.freeze
23
25
 
24
26
  def execute(xml)
27
+ locate_element(xml, 'protNFe/infProt/chNFe') ? normal_params(xml) : contingency_params(xml)
28
+ end
29
+
30
+ def normal_params(xml)
25
31
  {
26
- type: EMISSION_TYPES[locate_element(xml, "#{EMISSION_ROOT_PATH}/tpEmis").to_sym],
27
- number: locate_element(xml, "#{EMISSION_ROOT_PATH}/nNF"),
28
- serie: locate_element(xml, "#{EMISSION_ROOT_PATH}/serie"),
29
- emission_timestamp: locate_element_to_date(xml, "#{EMISSION_ROOT_PATH}/dhEmi"),
32
+ **contingency_params(xml),
33
+ qrcode_url: xml.locate('NFe/infNFeSupl/qrCode').first.nodes.first.value,
30
34
  receival_timestamp: locate_element_to_date(xml, 'protNFe/infProt/dhRecbto'),
31
- check_url: check_url(xml),
32
35
  access_key: locate_element(xml, 'protNFe/infProt/chNFe'),
33
- qrcode_url: xml.locate('NFe/infNFeSupl/qrCode').first.nodes.first.value,
34
36
  authorization_protocol: locate_element(xml, 'protNFe/infProt/nProt')
35
37
  }
36
38
  end
37
39
 
40
+ def contingency_params(xml)
41
+ emission_path = emission_root_path(xml)
42
+
43
+ hash = {
44
+ type: EMISSION_TYPES[locate_element(xml, "#{emission_path}/tpEmis").to_sym],
45
+ number: locate_element(xml, "#{emission_path}/nNF"),
46
+ serie: locate_element(xml, "#{emission_path}/serie"),
47
+ emission_timestamp: locate_element_to_date(xml, "#{emission_path}/dhEmi"),
48
+ check_url: check_url(xml)
49
+ }
50
+
51
+ node = xml.locate('infNFeSupl/qrCode').first
52
+
53
+ hash[:qrcode_url] = node.nodes.first.value if node
54
+ hash
55
+ end
56
+
38
57
  def check_url(xml)
39
- check_urls = Util::NfceCheckUrls::URLS[locate_element(xml, "#{EMISSION_ROOT_PATH}/cUF").to_sym]
40
- check_urls[locate_element(xml, "#{EMISSION_ROOT_PATH}/tpAmb").to_sym]
58
+ emission_path = emission_root_path(xml)
59
+
60
+ check_urls = Util::NfceCheckUrls::URLS[locate_element(xml, "#{emission_path}/cUF").to_sym]
61
+ check_urls[locate_element(xml, "#{emission_path}/tpAmb").to_sym]
41
62
  end
42
63
  private_class_method :check_url
43
64
 
44
65
  def locate_element_to_date(xml, path)
45
- Time.new(locate_element(xml, path)).utc
66
+ Time.parse(locate_element(xml, path)).utc
46
67
  end
47
68
  private_class_method :locate_element_to_date
48
69
  end
@@ -8,10 +8,8 @@ module BrInvoicesPdf
8
8
 
9
9
  module_function
10
10
 
11
- ROOT_PATH = Util::XmlLocate::ROOT_PATH
12
-
13
11
  def execute(xml)
14
- node_payments = xml.locate("#{ROOT_PATH}/pag")
12
+ node_payments = xml.locate("#{root_path(xml)}/pag")
15
13
 
16
14
  node_payments.map(&method(:payment_by))
17
15
  end
@@ -8,8 +8,6 @@ module BrInvoicesPdf
8
8
 
9
9
  module_function
10
10
 
11
- ROOT_PATH = Util::XmlLocate::ROOT_PATH
12
-
13
11
  FIELDS = { code: 'cProd',
14
12
  description: 'xProd',
15
13
  quantity: 'qCom',
@@ -18,7 +16,7 @@ module BrInvoicesPdf
18
16
  total_value: 'vProd' }.freeze
19
17
 
20
18
  def execute(xml)
21
- node_products = xml.locate("#{ROOT_PATH}/det")
19
+ node_products = xml.locate("#{root_path(xml)}/det")
22
20
  products_params(node_products) if node_products
23
21
  end
24
22
 
@@ -8,14 +8,18 @@ module BrInvoicesPdf
8
8
 
9
9
  module_function
10
10
 
11
- TOTAL_ROOT_PATH = "#{Util::XmlLocate::ROOT_PATH}/total/ICMSTot"
11
+ def total_root_path(xml)
12
+ "#{root_path(xml)}/total/ICMSTot"
13
+ end
12
14
 
13
15
  def execute(xml)
16
+ root_path = total_root_path(xml)
17
+
14
18
  {
15
19
  items: Products.execute(xml).count,
16
- subtotal: locate_element(xml, "#{TOTAL_ROOT_PATH}/vProd"),
17
- discounts: locate_element(xml, "#{TOTAL_ROOT_PATH}/vDesc"),
18
- total: locate_element(xml, "#{TOTAL_ROOT_PATH}/vNF"),
20
+ subtotal: locate_element(xml, "#{root_path}/vProd"),
21
+ discounts: locate_element(xml, "#{root_path}/vDesc"),
22
+ total: locate_element(xml, "#{root_path}/vNF"),
19
23
  cashback: '0.00'
20
24
  }
21
25
  end
@@ -13,12 +13,18 @@ module BrInvoicesPdf
13
13
  box(pdf, [0, pdf.cursor], page_content_width(pdf)) do
14
14
  emission_details(pdf, data)
15
15
  emission_date(pdf, data)
16
- consult_key(pdf, data[:emission_details][:access_key])
16
+ consult_key(pdf, data[:emission_details])
17
17
  end
18
18
  end
19
19
 
20
- def consult_key(pdf, key)
21
- pdf.text("CHAVE DE ACESSO:\n#{key.scan(/.{1,4}/).join(' ')}", align: :center)
20
+ def consult_key(pdf, details)
21
+ key = details[:access_key]
22
+ if key
23
+ pdf.text("Consulte pela chave de acesso em: #{details[:check_url]} \n\n", align: :center)
24
+ pdf.text("CHAVE DE ACESSO:\n#{key.scan(/.{1,4}/).join(' ')}", align: :center)
25
+ else
26
+ pdf.text("EMITIDA EM CONTIGÊNCIA\nPendente de Autorização \n\n", align: :center)
27
+ end
22
28
  end
23
29
  private_class_method :consult_key
24
30
 
@@ -27,8 +33,6 @@ module BrInvoicesPdf
27
33
  details = data[:emission_details]
28
34
  text = "Emissão: #{format_date(details[:emission_timestamp])} - Via Consumidor\n\n"
29
35
  pdf.text(text, align: :center)
30
- key_text = "Consulte pela chave de acesso em: #{details[:check_url]} \n\n"
31
- pdf.text(key_text, align: :center)
32
36
  end
33
37
  private_class_method :emission_date
34
38
 
@@ -11,7 +11,7 @@ module BrInvoicesPdf
11
11
  end
12
12
  end
13
13
 
14
- def address_params(root_path, local)
14
+ def address_params(_xml, root_path, local)
15
15
  {
16
16
  streetname: "#{root_path}/ender#{local}/xLgr",
17
17
  number: "#{root_path}/ender#{local}/nro",
@@ -5,13 +5,15 @@ module BrInvoicesPdf
5
5
  module XmlLocate
6
6
  module_function
7
7
 
8
- ROOT_PATH = 'NFe/infNFe'
9
-
10
8
  def locate_element(xml, path)
11
9
  element = xml.locate(path).first
12
10
  element.text if element.is_a?(Ox::Element)
13
11
  end
14
12
 
13
+ def root_path(xml)
14
+ xml.name == 'NFe' ? 'infNFe' : 'NFe/infNFe'
15
+ end
16
+
15
17
  def node_locate(element, path)
16
18
  value = element.nodes.first.locate(path).first
17
19
  value.text if value.is_a?(Ox::Element)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BrInvoicesPdf
4
- VERSION = '0.2.7'
4
+ VERSION = '0.2.8'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: br_invoices_pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thiago Ribeiro
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-10-27 00:00:00.000000000 Z
12
+ date: 2017-11-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: prawn
@@ -230,7 +230,6 @@ files:
230
230
  - bin/console
231
231
  - bin/setup
232
232
  - br_invoices_pdf.gemspec
233
- - cfe.xml
234
233
  - lib/br_invoices_pdf.rb
235
234
  - lib/br_invoices_pdf/cfe.rb
236
235
  - lib/br_invoices_pdf/cfe/parser.rb
@@ -284,7 +283,6 @@ files:
284
283
  - lib/br_invoices_pdf/util/product_table.rb
285
284
  - lib/br_invoices_pdf/util/xml_locate.rb
286
285
  - lib/br_invoices_pdf/version.rb
287
- - nfce.xml
288
286
  homepage: https://github.com/pdvend/br_invoices_pdf
289
287
  licenses:
290
288
  - MIT
data/cfe.xml DELETED
@@ -1,2 +0,0 @@
1
- <CFe><infCFe Id="CFe35170827192750000240590002257540001395955127" versao="0.07" versaoDadosEnt="0.07" versaoSB="010002"><ide><cUF>35</cUF><cNF>595512</cNF><mod>59</mod><nserieSAT>000225754</nserieSAT><nCFe>000139</nCFe><dEmi>20170808</dEmi><hEmi>151034</hEmi><cDV>7</cDV><tpAmb>1</tpAmb><CNPJ>22769530000131</CNPJ><signAC>FO7E++TPt/v6twwElpLfq8foIU4wE4FUW0fJLU1NTZywbOGZhijk8vH5BJf7/XiefaPP2uPFtS0333ZAlmzImBycKWe0ELM2bpu0k4shuSZrAXKJtY3VDEpWRD7mibQuF7EFzy/+kKHK9G2NIajlstMa90JpbzIx2aYFvzs2SfzuT2zeIeBBsnTMutHF7NFrsZQvgHkYY4Z7/PRzRvqikxb6o1LLt6yX+d+Z40vObqJeaGzWyfVs4KOdEdyv9mOKW7RRXR0/LM0RCcudjwVHlTCjyQ3HYBsjcmkSB1HQSMgydjkJOO9ICPWP7FtMjXcDZUny2gD5BOYkqL2Byple0Q==</signAC><assinaturaQRCODE>V0t3JUTvkC9hbQrfPtsnvQpDpvx950/Qj7lQZQ9Ee6sblwhlyZUitqy/EXyb65cdwz5inSNQhbjclH00bBmhzsIId/0DcJYyWLTZ8+jid6qoQqcZVN7+85nYQwe97k9t55to6/2KtMAdn1ooB4dNLhj+2+gy2s+X6We/2I/wuEcBPgDjUynX8KTnFMeFzCtESF3D1/ykVdxj+J3E5S82emBdBNEW4DL+3+kvHsFSyqbHjsseiuTp0oz2xJUuOoD9KE63hnLbIWuOC3z69gQofgGaKWuFjICFkirtTAHBuvBsMWcaSku3HCH68/fga4W/iIbv/RenbBeecG/Ffw4X9Q==</assinaturaQRCODE><numeroCaixa>001</numeroCaixa></ide><emit><CNPJ>27192750000240</CNPJ><xNome>NUTREM VALENS COMERCIO LTDA ME</xNome><xFant>NUTREM VALENS MARKET</xFant><enderEmit><xLgr>AVENIDA WASHINGTON LUIZ</xLgr><nro>970</nro><xCpl>C</xCpl><xBairro>METROPOLE</xBairro><xMun>DRACENA</xMun><CEP>17900000</CEP></enderEmit><IE>292065728117</IE><IM>197321</IM><cRegTrib>1</cRegTrib><cRegTribISSQN>1</cRegTribISSQN><indRatISSQN>N</indRatISSQN></emit><dest></dest><det nItem="1"><prod><cProd>SUCO4233</cProd><xProd>Suco de Tangerina Integral Mitto 1L</xProd><CFOP>5405</CFOP><uCom>UND</uCom><qCom>1.0000</qCom><vUnCom>16.500</vUnCom><vProd>16.50</vProd><indRegra>A</indRegra><vDesc>1.92</vDesc><vItem>14.58</vItem></prod><imposto><vItem12741>0.00</vItem12741><ICMS><ICMSSN102><Orig>0</Orig><CSOSN>500</CSOSN></ICMSSN102></ICMS><PIS><PISSN><CST>49</CST></PISSN></PIS><COFINS><COFINSSN><CST>49</CST></COFINSSN></COFINS></imposto></det><total><ICMSTot><vICMS>0.00</vICMS><vProd>16.50</vProd><vDesc>1.92</vDesc><vPIS>0.00</vPIS><vCOFINS>0.00</vCOFINS><vPISST>0.00</vPISST><vCOFINSST>0.00</vCOFINSST><vOutro>0.00</vOutro></ICMSTot><vCFe>14.58</vCFe><vCFeLei12741>0.00</vCFeLei12741></total><pgto><MP><cMP>04</cMP><vMP>14.58</vMP></MP><vTroco>0.00</vTroco></pgto><infAdic><obsFisco xCampo="02.03.04.03"><xTexto>Consulte o QRCode deste extrato atraves do App DeOlhoNaNota</xTexto></obsFisco></infAdic></infCFe><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod><SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"></SignatureMethod><Reference URI="#CFe35170827192750000240590002257540001395955127"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></Transform></Transforms><DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod><DigestValue>x7w+x/SD/didumxuYOXNGpg9o9amGeocwTKXaC2Wt18=</DigestValue></Reference></SignedInfo><SignatureValue>a7h3NWjAwkotebkrsQpVJj0I38ztE+GQagH24O8CeYLzXqvqilWg6ygp7mheNj3eNoZWwrOI2b43pAQogarnvkGHZJfXuG+Tt1rKIF9iTS/IeA2mEg5R5CgAGYtRuQRnGKe4Ws9Es5KjT7V3kWCaDjgHwhLj4+q6fx/ItyWYrAHy/BNTdeF2BKlKGJHmpxE2sZx1erFawgEcj7I3yXqljVAch1W3Q0i7IjvzlGRpDjO36DWm3zQJYRcK9mCo6apqIPTOvOCyWS4xlLE6YF6N9oPG1doBgkZ8Iai5bv94i5aBknKt7LWh5GRU+zTGmTFxoeYIV6WBgn+51dXe5Q2BdA==</SignatureValue><KeyInfo><X509Data><X509Certificate>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</X509Certificate></X509Data></KeyInfo></Signature></CFe>
2
-
data/nfce.xml DELETED
@@ -1,160 +0,0 @@
1
- <nfeProc versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe">
2
- <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
3
- <infNFe Id="NFe53171022769530000131654000000000601171025449" versao="3.10">
4
- <ide>
5
- <cUF>53</cUF>
6
- <cNF>17102544</cNF>
7
- <natOp>Venda</natOp>
8
- <indPag>0</indPag>
9
- <mod>65</mod>
10
- <serie>400</serie>
11
- <nNF>60</nNF>
12
- <dhEmi>2017-10-04T16:56:24-03:00</dhEmi>
13
- <tpNF>1</tpNF>
14
- <idDest>1</idDest>
15
- <cMunFG>5300108</cMunFG>
16
- <tpImp>4</tpImp>
17
- <tpEmis>1</tpEmis>
18
- <cDV>9</cDV>
19
- <tpAmb>2</tpAmb>
20
- <finNFe>1</finNFe>
21
- <indFinal>1</indFinal>
22
- <indPres>1</indPres>
23
- <procEmi>0</procEmi>
24
- <verProc>1.0</verProc>
25
- </ide>
26
- <emit>
27
- <CNPJ>22769530000131</CNPJ>
28
- <xNome>PDVEND</xNome>
29
- <enderEmit>
30
- <xLgr>Avenida</xLgr>
31
- <nro>LT 06</nro>
32
- <xBairro>NORTE (AGUAS CLARAS)</xBairro>
33
- <cMun>5300108</cMun>
34
- <xMun>brasilia</xMun>
35
- <UF>DF</UF>
36
- <CEP>71916500</CEP>
37
- </enderEmit>
38
- <IE>0772733700120</IE>
39
- <CRT>1</CRT>
40
- </emit>
41
- <dest>
42
- <CNPJ>25504949000150</CNPJ>
43
- <xNome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xNome>
44
- <indIEDest>9</indIEDest>
45
- </dest>
46
- <det nItem="1">
47
- <prod>
48
- <cProd>LATA9308</cProd>
49
- <cEAN></cEAN>
50
- <xProd>NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xProd>
51
- <NCM>01061200</NCM>
52
- <CFOP>5102</CFOP>
53
- <uCom>UN</uCom>
54
- <qCom>1</qCom>
55
- <vUnCom>0.91</vUnCom>
56
- <vProd>0.91</vProd>
57
- <cEANTrib></cEANTrib>
58
- <uTrib>UN</uTrib>
59
- <qTrib>1</qTrib>
60
- <vUnTrib>0.91</vUnTrib>
61
- <indTot>1</indTot>
62
- </prod>
63
- <imposto>
64
- <ICMS>
65
- <ICMSSN102>
66
- <orig>0</orig>
67
- <CSOSN>102</CSOSN>
68
- </ICMSSN102>
69
- </ICMS>
70
- </imposto>
71
- </det>
72
- <det nItem="2">
73
- <prod>
74
- <cProd>BUG4933</cProd>
75
- <cEAN></cEAN>
76
- <xProd>Bugnnn</xProd>
77
- <NCM>01061200</NCM>
78
- <CFOP>5102</CFOP>
79
- <uCom>UN</uCom>
80
- <qCom>1</qCom>
81
- <vUnCom>4.90</vUnCom>
82
- <vProd>4.90</vProd>
83
- <cEANTrib></cEANTrib>
84
- <uTrib>UN</uTrib>
85
- <qTrib>1</qTrib>
86
- <vUnTrib>4.90</vUnTrib>
87
- <indTot>1</indTot>
88
- </prod>
89
- <imposto>
90
- <ICMS>
91
- <ICMSSN102>
92
- <orig>0</orig>
93
- <CSOSN>102</CSOSN>
94
- </ICMSSN102>
95
- </ICMS>
96
- </imposto>
97
- </det>
98
- <total>
99
- <ICMSTot>
100
- <vBC>0.00</vBC>
101
- <vICMS>0.00</vICMS>
102
- <vICMSDeson>0.00</vICMSDeson>
103
- <vBCST>0.00</vBCST>
104
- <vST>0.00</vST>
105
- <vProd>5.81</vProd>
106
- <vFrete>0.00</vFrete>
107
- <vSeg>0.00</vSeg>
108
- <vDesc>0.00</vDesc>
109
- <vII>0.00</vII>
110
- <vIPI>0.00</vIPI>
111
- <vPIS>0.00</vPIS>
112
- <vCOFINS>0.00</vCOFINS>
113
- <vOutro>0.00</vOutro>
114
- <vNF>5.81</vNF>
115
- </ICMSTot>
116
- </total>
117
- <transp>
118
- <modFrete>9</modFrete>
119
- </transp>
120
- <pag>
121
- <tPag>01</tPag>
122
- <vPag>5.81</vPag>
123
- <vTroco>0.19</vTroco>
124
- </pag>
125
- </infNFe>
126
- <infAdic>
127
- <infCpl>
128
- Tributos aproximados: (Lei Federal 12.741/2012): R$ 0,00 (0%)
129
- </infCpl>
130
- </infAdic>
131
- <infNFeSupl>
132
- <qrCode><![CDATA[http://dec.fazenda.df.gov.br/ConsultarNFCe.aspx?chNFe=53171022769530000131654000000000601171025449&nVersao=100&tpAmb=2&cDest=25504949000150&dhEmi=323031372d31302d30345431363a35363a32342d30333a3030&vNF=5.81&vICMS=0.00&digVal=6d3658314668464774314435487850794d677a557276412b646c733d&cIdToken=000001&cHashQRCode=62F1D30A95E4E08FC5A29D506FF935FD37C8614E]]></qrCode>
133
- </infNFeSupl>
134
- <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
135
- <SignedInfo>
136
- <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
137
- <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
138
- <Reference URI="#NFe53171022769530000131654000000000601171025449">
139
- <Transforms>
140
- <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
141
- <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
142
- </Transforms>
143
- <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
144
- <DigestValue>m6X1FhFGt1D5HxPyMgzUrvA+dls=</DigestValue>
145
- </Reference>
146
- </SignedInfo>
147
- <SignatureValue>ERawIQpTAZxMjiD0s9CJRKNOwv7RjONCMBT+XMDscTLzgRd9a6My8fau29D9tGJwOKGVJ12aRTqr34B+ECnSwyJ9qTE+l1C9pVRY2ypLUhJW5Q3FCg+Zke3MDmDqmJVv44jA5O2s8UIhuw2hVQgz32Gr38ZRkytEU5Xcd5sEOoinClNNtrGduUDVdfeEsIuTfL4TIbkmf5dnqje+P6ZNmSFuwDeb2TH2MG8R/EBSazPM+PR7nGId5cCMj1edfMeSsR6MXMnju7t/8N5qUGpKwmwPC/jQtmFVse18f2joIO4HfeGz9tIP92TNUVnrjTTWmMBrHVWqiT8ogxgXX/SFfQ==</SignatureValue><KeyInfo><X509Data><X509Certificate>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</X509Certificate></X509Data></KeyInfo></Signature></NFe>
148
- <protNFe versao="3.10">
149
- <infProt>
150
- <tpAmb>2</tpAmb>
151
- <verAplic>SVRSnfce201707171030</verAplic>
152
- <chNFe>53171022769530000131654000000000601171025449</chNFe>
153
- <dhRecbto>2017-10-04T16:56:26-03:00</dhRecbto>
154
- <nProt>353170000106963</nProt>
155
- <digVal>m6X1FhFGt1D5HxPyMgzUrvA+dls=</digVal>
156
- <cStat>100</cStat>
157
- <xMotivo>Autorizado o uso da NF-e</xMotivo>
158
- </infProt>
159
- </protNFe>
160
- </nfeProc>