facturacr 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5f79a7e9d0f44bbdc3655d3ec903cba6bc87c8a7
4
- data.tar.gz: e9c3a32ada42c6adea6145681dbdf0141a4688af
3
+ metadata.gz: 0117d58ce8a17abc4ab2adb2b6171cd172b16ab9
4
+ data.tar.gz: 2e4cde005598c349e89bd345127907103db9eec6
5
5
  SHA512:
6
- metadata.gz: b6da6d3d09e8c9e73b647115371e8efae27d652a789a020eb5ceaa19d9eb9e3073fa73442ad27d9e5c6c3167bf235f771e0e816cee8ed4bc875b97fda739fb9c
7
- data.tar.gz: cad88e6a82f1af07418c41c777eb2310115bc6a7baf2767f8587647e811533b4e6cc87d54e85684d0193cf258533c663f1ef334014bf3f49b37c8c74743757e8
6
+ metadata.gz: 47b13a21cf4cf13361072f43c5ca3d4a7b67f21d74fb29a842bb4ec0c26a0f2ff52b94a98d025718f01ff59fdb1c662236008f7a3796ea148e87bc39655de4c6
7
+ data.tar.gz: d8239ff2d286853964d8735e9bc2b0747902273e592c11b43ce0e164632e36378e1a96043bbbf4bb48184fa658b3e23f97e7d0ad85e849430e96ba709eb8f871
@@ -182,3 +182,4 @@ require 'facturacr/document/regulation'
182
182
  require 'facturacr/document/summary'
183
183
  require 'facturacr/document/tax'
184
184
  require 'facturacr/document/other_text'
185
+ require 'facturacr/document/other_content'
@@ -0,0 +1,30 @@
1
+ module FE
2
+ class Document
3
+ class OtherContent
4
+ include ActiveModel::Validations
5
+ attr_accessor :implementation
6
+
7
+ validates :implementation, presence: true
8
+
9
+
10
+ def initialize(args={})
11
+ @implementation = args[:implementation]
12
+ end
13
+
14
+ def build_xml(node)
15
+ raise "Invalid Record: #{errors.messages}" unless valid?
16
+ node = Nokogiri::XML::Builder.new if node.nil?
17
+ node.OtroContenido do |xml|
18
+ @implementation.build_xml(xml)
19
+ end
20
+ end
21
+
22
+ def to_xml(builder)
23
+ build_xml(builder).to_xml
24
+ end
25
+
26
+ end
27
+ end
28
+ end
29
+
30
+ require 'facturacr/document/other_content/price_smart'
@@ -0,0 +1,58 @@
1
+ module FE
2
+ class Document
3
+ class OtherContent
4
+ class PriceSmart
5
+ include ActiveModel::Validations
6
+ attr_accessor :transaction_type, :order_number, :order_date, :supplier_number, :store_code
7
+
8
+ TYPES = ['purchase', 'expense']
9
+ TYPES.each do |t|
10
+ define_method "#{t}?" do
11
+ transaction_type.eql?(t)
12
+ end
13
+ end
14
+
15
+ NAMESPACES = {
16
+ "xsi:schemaLocation" => "https://invoicer.ekomercio.com/esquemas https://invoices/ekomercio.com/esquemas/ComplementoPricesmartCR_V1_0.xsd",
17
+ "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance",
18
+ "xmlns:retail" => "https://invoicer.ekomercio.com/esquemas"
19
+ }
20
+
21
+ validates :transaction_type, presence: true, inclusion: TYPES
22
+ validates :supplier_number, presence: true, length: {maximum: 12}
23
+ validates :store_code, presence: true
24
+ validates :order_number, presence: true, if: ->{ purchase? }
25
+ validates :order_date, presence: true, if: ->{ purchase? }
26
+
27
+ def initialize(args={})
28
+ @transaction_type = args[:transaction_type]
29
+ @supplier_number = args[:supplier_number]
30
+ @store_code = args[:store_code]
31
+ @order_number = args[:order_number]
32
+ @order_date = args[:order_date]
33
+ end
34
+
35
+ def build_xml(node)
36
+ raise "Invalid Record: #{errors.messages}" unless valid?
37
+ node = Nokogiri::XML::Builder.new if node.nil?
38
+ node['retail'].Complemento(NAMESPACES) do |xml|
39
+ xml['retail'].NumeroVendedor @supplier_number
40
+ if purchase?
41
+ xml['retail'].OrdenDeCompra do |xml2|
42
+ xml2['retail'].NumeroOrden @order_number
43
+ xml2['retail'].FechaOrden @order_date.xmlschema
44
+ end
45
+ end
46
+ xml['retail'].LugarDeEntrega do |xml2|
47
+ xml2['retail'].GLNLugarDeEntrega @store_code
48
+ end
49
+ end
50
+ end
51
+
52
+ def to_xml(builder)
53
+ build_xml(builder)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -1,3 +1,3 @@
1
1
  module FE
2
- VERSION = "1.0.6"
2
+ VERSION = "1.0.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: facturacr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josef Sauter
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-12 00:00:00.000000000 Z
11
+ date: 2019-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -188,6 +188,8 @@ files:
188
188
  - lib/facturacr/document/issuer.rb
189
189
  - lib/facturacr/document/item.rb
190
190
  - lib/facturacr/document/location.rb
191
+ - lib/facturacr/document/other_content.rb
192
+ - lib/facturacr/document/other_content/price_smart.rb
191
193
  - lib/facturacr/document/other_text.rb
192
194
  - lib/facturacr/document/phone.rb
193
195
  - lib/facturacr/document/phone_type.rb
@@ -234,9 +236,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
236
  version: '0'
235
237
  requirements: []
236
238
  rubyforge_project:
237
- rubygems_version: 2.4.6
239
+ rubygems_version: 2.6.8
238
240
  signing_key:
239
241
  specification_version: 4
240
242
  summary: Facturación Electrónica de Costa Rica
241
243
  test_files: []
242
- has_rdoc: