br_invoices_pdf 0.2.6.alpha.19 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +0 -1
  3. data/CHANGELOG.md +0 -1
  4. data/Gemfile +0 -2
  5. data/Rakefile +0 -2
  6. data/bin/console +0 -1
  7. data/br_invoices_pdf.gemspec +0 -1
  8. data/lib/br_invoices_pdf.rb +0 -12
  9. data/lib/br_invoices_pdf/cfe.rb +1 -2
  10. data/lib/br_invoices_pdf/cfe/parser.rb +3 -5
  11. data/lib/br_invoices_pdf/cfe/parser/access_key.rb +1 -3
  12. data/lib/br_invoices_pdf/cfe/parser/base_parser.rb +19 -0
  13. data/lib/br_invoices_pdf/cfe/parser/cnpj.rb +1 -3
  14. data/lib/br_invoices_pdf/cfe/parser/company_attributes.rb +1 -3
  15. data/lib/br_invoices_pdf/cfe/parser/cpf.rb +1 -3
  16. data/lib/br_invoices_pdf/cfe/parser/document_number.rb +1 -3
  17. data/lib/br_invoices_pdf/cfe/parser/fisco_obs.rb +1 -3
  18. data/lib/br_invoices_pdf/cfe/parser/payment.rb +1 -3
  19. data/lib/br_invoices_pdf/cfe/parser/payments.rb +16 -6
  20. data/lib/br_invoices_pdf/cfe/parser/products_data.rb +2 -4
  21. data/lib/br_invoices_pdf/cfe/parser/sat.rb +1 -3
  22. data/lib/br_invoices_pdf/cfe/renderer.rb +18 -4
  23. data/lib/br_invoices_pdf/cfe/renderer/base_renderer.rb +62 -5
  24. data/lib/br_invoices_pdf/cfe/renderer/company_identification.rb +0 -3
  25. data/lib/br_invoices_pdf/cfe/renderer/fisco_info.rb +0 -3
  26. data/lib/br_invoices_pdf/cfe/renderer/header.rb +0 -3
  27. data/lib/br_invoices_pdf/cfe/renderer/payment_forms.rb +12 -6
  28. data/lib/br_invoices_pdf/cfe/renderer/product_table.rb +48 -4
  29. data/lib/br_invoices_pdf/cfe/renderer/qr_code.rb +9 -5
  30. data/lib/br_invoices_pdf/cfe/renderer/taxes_info.rb +2 -5
  31. data/lib/br_invoices_pdf/cfe/renderer/totals.rb +24 -3
  32. data/lib/br_invoices_pdf/errors/invalid_document_type.rb +0 -2
  33. data/lib/br_invoices_pdf/generator.rb +0 -2
  34. data/lib/br_invoices_pdf/version.rb +1 -3
  35. metadata +6 -34
  36. data/.codeclimate.yml +0 -17
  37. data/lib/br_invoices_pdf/nfce.rb +0 -11
  38. data/lib/br_invoices_pdf/nfce/parser.rb +0 -33
  39. data/lib/br_invoices_pdf/nfce/parser/additional_info.rb +0 -17
  40. data/lib/br_invoices_pdf/nfce/parser/company.rb +0 -25
  41. data/lib/br_invoices_pdf/nfce/parser/customer.rb +0 -32
  42. data/lib/br_invoices_pdf/nfce/parser/emission_details.rb +0 -51
  43. data/lib/br_invoices_pdf/nfce/parser/payments.rb +0 -30
  44. data/lib/br_invoices_pdf/nfce/parser/products.rb +0 -39
  45. data/lib/br_invoices_pdf/nfce/parser/totals.rb +0 -25
  46. data/lib/br_invoices_pdf/nfce/renderer.rb +0 -37
  47. data/lib/br_invoices_pdf/nfce/renderer/base_renderer.rb +0 -22
  48. data/lib/br_invoices_pdf/nfce/renderer/company_identification.rb +0 -37
  49. data/lib/br_invoices_pdf/nfce/renderer/customer_identification.rb +0 -47
  50. data/lib/br_invoices_pdf/nfce/renderer/fiscal_message.rb +0 -46
  51. data/lib/br_invoices_pdf/nfce/renderer/header.rb +0 -32
  52. data/lib/br_invoices_pdf/nfce/renderer/payment_forms.rb +0 -73
  53. data/lib/br_invoices_pdf/nfce/renderer/product_table.rb +0 -23
  54. data/lib/br_invoices_pdf/nfce/renderer/qr_code.rb +0 -56
  55. data/lib/br_invoices_pdf/nfce/renderer/taxes_info.rb +0 -28
  56. data/lib/br_invoices_pdf/nfce/renderer/totals.rb +0 -30
  57. data/lib/br_invoices_pdf/util/base_renderer.rb +0 -121
  58. data/lib/br_invoices_pdf/util/enum.rb +0 -20
  59. data/lib/br_invoices_pdf/util/mount_params.rb +0 -26
  60. data/lib/br_invoices_pdf/util/nfce_check_urls.rb +0 -102
  61. data/lib/br_invoices_pdf/util/pdf_renderer.rb +0 -33
  62. data/lib/br_invoices_pdf/util/product_table.rb +0 -57
  63. data/lib/br_invoices_pdf/util/xml_locate.rb +0 -21
  64. data/nfce.xml +0 -160
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BrInvoicesPdf
4
- module Util
5
- module ProductTable
6
- module_function
7
-
8
- PRODUCT_TABLE_BASE_DATA = [['CÓD.', 'DESCRIÇÃO', 'QTD.', 'UND.', 'V.UNIT', 'V.TOT']].freeze
9
- # :reek:FeatureEnvy
10
- def product_table_data(data)
11
- data[:products].reduce(PRODUCT_TABLE_BASE_DATA) do |result, cur|
12
- result + [[
13
- cur[:code],
14
- cur[:description],
15
- format_number(cur[:quantity]),
16
- cur[:unit_label],
17
- format_currency(cur[:unit_value]),
18
- format_currency(cur[:total_value])
19
- ]]
20
- end
21
- end
22
- private_class_method :product_table_data
23
-
24
- def format_table(pdf, table_data)
25
- width = page_content_width(pdf)
26
- pdf.table(table_data, width: width) do |table|
27
- format_row(table.row(0))
28
- format_columns(table)
29
- end
30
- end
31
- private_class_method :format_table
32
-
33
- def format_row(row)
34
- row.font_style = :bold
35
- row.align = :center
36
- end
37
- private_class_method :format_row
38
-
39
- # :reek:FeatureEnvy
40
- def format_columns(table)
41
- table.columns(0..5).valign = :center
42
- table.columns([2, 4, 5]).align = :right
43
- table.column(3).align = :center
44
- table_widths(table, table.width)
45
- end
46
- private_class_method :format_columns
47
-
48
- # :reek:FeatureEnvy
49
- def table_widths(table, width)
50
- table.column(0).width = width * 0.16
51
- table.columns([2, 3]).width = width * 0.155
52
- table.column([4, 5]).width = width * 0.135
53
- end
54
- private_class_method :table_widths
55
- end
56
- end
57
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BrInvoicesPdf
4
- module Util
5
- module XmlLocate
6
- module_function
7
-
8
- ROOT_PATH = 'NFe/infNFe'
9
-
10
- def locate_element(xml, path)
11
- element = xml.locate(path).first
12
- element.text if element.is_a?(Ox::Element)
13
- end
14
-
15
- def node_locate(element, path)
16
- value = element.nodes.first.locate(path).first
17
- value.text if value.is_a?(Ox::Element)
18
- end
19
- end
20
- end
21
- end
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>