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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0117d58ce8a17abc4ab2adb2b6171cd172b16ab9
|
4
|
+
data.tar.gz: 2e4cde005598c349e89bd345127907103db9eec6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47b13a21cf4cf13361072f43c5ca3d4a7b67f21d74fb29a842bb4ec0c26a0f2ff52b94a98d025718f01ff59fdb1c662236008f7a3796ea148e87bc39655de4c6
|
7
|
+
data.tar.gz: d8239ff2d286853964d8735e9bc2b0747902273e592c11b43ce0e164632e36378e1a96043bbbf4bb48184fa658b3e23f97e7d0ad85e849430e96ba709eb8f871
|
data/lib/facturacr/document.rb
CHANGED
@@ -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
|
data/lib/facturacr/version.rb
CHANGED
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.
|
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-
|
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.
|
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:
|