br_danfe 0.7.7 → 0.8.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/Gemfile.lock +2 -2
- data/config/locales/pt-BR.yml +3 -1
- data/lib/br_danfe/danfe_lib/xprod.rb +34 -7
- data/lib/br_danfe/version.rb +1 -1
- data/spec/lib/danfe_lib/xprod_spec.rb +78 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dbfc9d821dc664401714b3611cfc696aa2b569b2f8aeaa11469511c27bff85f0
|
4
|
+
data.tar.gz: 14218c179db89c175265117bebd5332a8110a92a3fa5722631ac54f74d8f4849
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b9024776b1b7f0a7302bed95c225254c55086c5df53d35ae75ef50a8f79c6f1fe36d2c65173ec426004fe3d7692d23626f6d8ea9b3875505c17073b627a3e53
|
7
|
+
data.tar.gz: 1c6e82f74f8f3a29f07a0a5eaf718ccdac50bb82893fa5f5c2dc10209f25ae1295b5512c82f7a6d0e51e2a32d7a32c1eaf0f83c107357c77051944af4a85741e
|
data/Gemfile.lock
CHANGED
data/config/locales/pt-BR.yml
CHANGED
@@ -105,7 +105,9 @@ pt-BR:
|
|
105
105
|
vProd: "VL TOTAL"
|
106
106
|
xProdST: "ST: MVA: %{pMVAST}% * Alíq: %{pICMSST}% * BC: %{vBCST} * Vlr: %{vICMSST}"
|
107
107
|
xProdFCI: "FCI: %{nFCI}"
|
108
|
-
xProdFCP: "FCP: Alíq: %{pFCP}% * Vlr: %{vFCP}"
|
108
|
+
xProdFCP: "FCP: Base: %{vBCFCP} * Alíq: %{pFCP}% * Vlr: %{vFCP}"
|
109
|
+
xProdFCPICMS00: "FCP: Alíq: %{pFCP}% * Vlr: %{vFCP}"
|
110
|
+
xProdFCPST: "FCP ST: Base: %{vBCFCPST} * Alíq: %{pFCPST}% * Vlr: %{vFCPST}"
|
109
111
|
ICMS:
|
110
112
|
CST: "CST"
|
111
113
|
vBC: "BC ICMS"
|
@@ -10,8 +10,9 @@ module BrDanfe
|
|
10
10
|
|
11
11
|
xprod += infAdProd if has_infAdProd?
|
12
12
|
xprod += fci if fci?
|
13
|
-
xprod +=
|
13
|
+
xprod += icms_st if icms_st?
|
14
14
|
xprod += fcp if fcp?
|
15
|
+
xprod += fcp_st if fcp_st?
|
15
16
|
|
16
17
|
xprod
|
17
18
|
end
|
@@ -35,7 +36,7 @@ module BrDanfe
|
|
35
36
|
!@det.css('prod/nFCI').text.empty?
|
36
37
|
end
|
37
38
|
|
38
|
-
def
|
39
|
+
def icms_st
|
39
40
|
"\n#{I18n.t('danfe.det.prod.xProdST',
|
40
41
|
pMVAST: Helper.numerify(@det.css('ICMS/*/pMVAST').text),
|
41
42
|
pICMSST: Helper.numerify(@det.css('ICMS/*/pICMSST').text),
|
@@ -43,18 +44,44 @@ module BrDanfe
|
|
43
44
|
vICMSST: Helper.numerify(@det.css('ICMS/*/vICMSST').text))}"
|
44
45
|
end
|
45
46
|
|
46
|
-
def
|
47
|
-
@det.css(
|
47
|
+
def icms_st?
|
48
|
+
@det.css('ICMS/*/vBCST').text.to_i > 0
|
49
|
+
end
|
50
|
+
|
51
|
+
def fcp?
|
52
|
+
@det.css('ICMS/*/vFCP').text.to_i > 0
|
48
53
|
end
|
49
54
|
|
50
55
|
def fcp
|
51
|
-
|
56
|
+
icms00? ? fcp_for_icms00 : fcp_complete
|
57
|
+
end
|
58
|
+
|
59
|
+
def icms00?
|
60
|
+
@det.at_css('ICMS00')
|
61
|
+
end
|
62
|
+
|
63
|
+
def fcp_for_icms00
|
64
|
+
"\n#{I18n.t('danfe.det.prod.xProdFCPICMS00',
|
52
65
|
vFCP: Helper.numerify(@det.css('ICMS00/vFCP').text),
|
53
66
|
pFCP: Helper.numerify(@det.css('ICMS00/pFCP').text))}"
|
54
67
|
end
|
55
68
|
|
56
|
-
def
|
57
|
-
|
69
|
+
def fcp_complete
|
70
|
+
"\n#{I18n.t('danfe.det.prod.xProdFCP',
|
71
|
+
vBCFCP: Helper.numerify(@det.css('ICMS/*/vBCFCP').text),
|
72
|
+
vFCP: Helper.numerify(@det.css('ICMS/*/vFCP').text),
|
73
|
+
pFCP: Helper.numerify(@det.css('ICMS/*/pFCP').text))}"
|
74
|
+
end
|
75
|
+
|
76
|
+
def fcp_st?
|
77
|
+
@det.css('ICMS/*/vFCPST').text.to_i > 0
|
78
|
+
end
|
79
|
+
|
80
|
+
def fcp_st
|
81
|
+
"\n#{I18n.t('danfe.det.prod.xProdFCPST',
|
82
|
+
vBCFCPST: Helper.numerify(@det.css('ICMS/*/vBCFCPST').text),
|
83
|
+
pFCPST: Helper.numerify(@det.css('ICMS/*/pFCPST').text),
|
84
|
+
vFCPST: Helper.numerify(@det.css('ICMS/*/vFCPST').text))}"
|
58
85
|
end
|
59
86
|
end
|
60
87
|
end
|
data/lib/br_danfe/version.rb
CHANGED
@@ -88,7 +88,7 @@ describe BrDanfe::DanfeLib::Xprod do
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
-
context "when have FCP" do
|
91
|
+
context "when have FCP on ICMS00 tag" do
|
92
92
|
let(:xml_fcp) do
|
93
93
|
xml = <<-eos
|
94
94
|
<det nItem="1">
|
@@ -97,9 +97,11 @@ describe BrDanfe::DanfeLib::Xprod do
|
|
97
97
|
</prod>
|
98
98
|
<imposto>
|
99
99
|
<vTotTrib>23.56</vTotTrib>
|
100
|
-
<
|
101
|
-
<
|
102
|
-
|
100
|
+
<ICMS>
|
101
|
+
<ICMS00>
|
102
|
+
<vFCP>4.71</vFCP>
|
103
|
+
<pFCP>2.00</pFCP>
|
104
|
+
</ICMS00>
|
103
105
|
</ICMS>
|
104
106
|
</imposto>
|
105
107
|
</det>
|
@@ -136,10 +138,10 @@ describe BrDanfe::DanfeLib::Xprod do
|
|
136
138
|
<pICMSST>17.00</pICMSST>
|
137
139
|
<vICMSST>29.28</vICMSST>
|
138
140
|
</ICMSSN202>
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
141
|
+
<ICMS00>
|
142
|
+
<vFCP>4.71</vFCP>
|
143
|
+
<pFCP>2.00</pFCP>
|
144
|
+
</ICMS00>
|
143
145
|
</ICMS>
|
144
146
|
</imposto>
|
145
147
|
<infAdProd>Informações adicionais do produto</infAdProd>
|
@@ -165,5 +167,73 @@ describe BrDanfe::DanfeLib::Xprod do
|
|
165
167
|
expect(subject.render).to eq expected
|
166
168
|
end
|
167
169
|
end
|
170
|
+
|
171
|
+
context "when FCP is not in a ICMS00 tag" do
|
172
|
+
let(:xml_fcp) do
|
173
|
+
xml = <<-eos
|
174
|
+
<det nItem="1">
|
175
|
+
<prod>
|
176
|
+
<xProd>MONITOR DE ARCO ELETRICO</xProd>
|
177
|
+
</prod>
|
178
|
+
<imposto>
|
179
|
+
<vTotTrib>23.56</vTotTrib>
|
180
|
+
<ICMS>
|
181
|
+
<ICMS10>
|
182
|
+
<vBCFCP>235.50</vBCFCP>
|
183
|
+
<vFCP>4.71</vFCP>
|
184
|
+
<pFCP>2.00</pFCP>
|
185
|
+
</ICMS10>
|
186
|
+
</ICMS>
|
187
|
+
</imposto>
|
188
|
+
</det>
|
189
|
+
eos
|
190
|
+
|
191
|
+
Nokogiri::XML(xml)
|
192
|
+
end
|
193
|
+
|
194
|
+
subject { BrDanfe::DanfeLib::Xprod.new(xml_fcp) }
|
195
|
+
|
196
|
+
it "returns product + FCP" do
|
197
|
+
expected = "MONITOR DE ARCO ELETRICO"
|
198
|
+
expected += "\n"
|
199
|
+
expected += "FCP: Base: 235,50 * Alíq: 2,00% * Vlr: 4,71"
|
200
|
+
|
201
|
+
expect(subject.render).to eq expected
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
context "when have FCP ST" do
|
206
|
+
let(:xml_fcp) do
|
207
|
+
xml = <<-eos
|
208
|
+
<det nItem="1">
|
209
|
+
<prod>
|
210
|
+
<xProd>MONITOR DE ARCO ELETRICO</xProd>
|
211
|
+
</prod>
|
212
|
+
<imposto>
|
213
|
+
<vTotTrib>23.56</vTotTrib>
|
214
|
+
<ICMS>
|
215
|
+
<ICMS30>
|
216
|
+
<vBCFCPST>235.50</vBCFCPST>
|
217
|
+
<vFCPST>4.71</vFCPST>
|
218
|
+
<pFCPST>2.00</pFCPST>
|
219
|
+
</ICMS30>
|
220
|
+
</ICMS>
|
221
|
+
</imposto>
|
222
|
+
</det>
|
223
|
+
eos
|
224
|
+
|
225
|
+
Nokogiri::XML(xml)
|
226
|
+
end
|
227
|
+
|
228
|
+
subject { BrDanfe::DanfeLib::Xprod.new(xml_fcp) }
|
229
|
+
|
230
|
+
it "returns product + FCP" do
|
231
|
+
expected = "MONITOR DE ARCO ELETRICO"
|
232
|
+
expected += "\n"
|
233
|
+
expected += "FCP ST: Base: 235,50 * Alíq: 2,00% * Vlr: 4,71"
|
234
|
+
|
235
|
+
expect(subject.render).to eq expected
|
236
|
+
end
|
237
|
+
end
|
168
238
|
end
|
169
239
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: br_danfe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ASSEINFO
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: barby
|