elmas 2.5.0 → 2.6.0

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: c3beb2738aa3a94532e1e4f032a229f87e94aa08
4
- data.tar.gz: 37ecf10dae1c0baf831cd221f15c900959d7137b
3
+ metadata.gz: b4840a3f199ef30c829409b92a207b39fde8cdb1
4
+ data.tar.gz: 95aa8f2d9383565fbd3cca3199a1e983635830ed
5
5
  SHA512:
6
- metadata.gz: cb404ddad916430568cc25e593d52b06b0e8e35c4b211c78a8587e866c12e8de69b9ff5bee4f2a73659e49c274159cc034c12083592ab7cf146567be1ba3af1c
7
- data.tar.gz: 299d31e087f5f2c7847e99cf81cde26e47db46c589216bed196177e75e6e884b69b53a4ea36435897b59d4a69fd3ef0935e523c8d0906cc72580670c1a531f36
6
+ metadata.gz: 77744d31e6373970e4e8cb92668fd0802af0a5d91267de329020a756b0199379ffa5e64c3863f52afb54f1215c41e1360f29f427437068377409eca7c335385e
7
+ data.tar.gz: f7758eaae28006c2e346ddc95077a874489e74c891bb2e18078848deaf54a60a8f5ad9696df632c7250091673616e87a0087dddc826d9343950a1611efeb7391
data/Changelog.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## 2.6.0
2
+ - Add main atttribute to bank account (thanks @Korstiaan)
3
+ - Add address object (thanks @chicks)
4
+ - Add user model (thanks @michielverkoijen)
5
+ - Add couple missing attrbutes (thanks @michielverkoijen)
6
+
7
+ ## 2.5.0
8
+ - Fix some stuff in the Oauth logic (thanks @michielverkoijen)
9
+ - Add division class (thanks @michielverkoijen)
10
+ - Remove mandatory attribute from SalesInvoice (thanks @michielverkoijen)
11
+ - Add configurable logger (thanks @jdlombardozzi)
12
+ - Add refresh token logic so you do not always have to reauthorize (thanks @jdlombardozzi)
13
+ - Fix all rubocop issues (thanks @jdlombardozzi)
14
+
1
15
  ## 2.4.2
2
16
  - Add thread safety
3
17
 
data/README.md CHANGED
@@ -7,6 +7,10 @@
7
7
 
8
8
  Elmas means diamond, but in this case it's an API wrapper for [Exact Online](https://developers.exactonline.com/). This gem was created by [@Marthyn](https://github.com/marthyn), [Hoppinger](http://www.hoppinger.com) and a few people:
9
9
 
10
+ # DISCLAIMER
11
+
12
+ Please read the Authorization part of this readme before opening an issue about it and realize it's a functionality that is only intented for debugging purposes really, or to allow App to App communication, but it's really better to CREATE YOUR OWN authentication/refresh/authorization logic for your customers through the normal OAUTH path. The code in the Oauth.rb file could break any time Exact changes their login form for example.
13
+
10
14
  ### Contributers
11
15
 
12
16
  * [Commuun](https://github.com/commuun)
data/lib/elmas.rb CHANGED
@@ -25,6 +25,7 @@ require "elmas/resources/sales_item_prices"
25
25
  require "elmas/resources/item"
26
26
  require "elmas/resources/item_group"
27
27
  require "elmas/resources/account"
28
+ require "elmas/resources/address"
28
29
  require "elmas/resources/gl_account"
29
30
  require "elmas/resources/sales_entry"
30
31
  require "elmas/resources/sales_entry_line"
@@ -45,7 +46,10 @@ require "elmas/resources/vat_code"
45
46
  require "elmas/resources/general_journal_entry"
46
47
  require "elmas/resources/general_journal_entry_line"
47
48
  require "elmas/resources/payment_condition"
49
+ require "elmas/resources/goods_delivery"
50
+ require "elmas/resources/goods_delivery_line"
48
51
  require "elmas/resources/division"
52
+ require "elmas/resources/user"
49
53
 
50
54
  module Elmas
51
55
  extend Config
@@ -0,0 +1,36 @@
1
+ module Elmas
2
+ class Address
3
+ # An account needs a name
4
+ include Elmas::Resource
5
+
6
+ def base_path
7
+ "crm/Addresses"
8
+ end
9
+
10
+ def mandatory_attributes
11
+ [:type]
12
+ end
13
+
14
+ # https://start.exactonline.nl/docs/HlpRestAPIResourcesDetails.aspx?name=CRMAddresses
15
+ def other_attributes # rubocop:disable Metrics/MethodLength
16
+ [
17
+ :account, :account_is_supplier, :account_name,
18
+ :address_line1, :address_line2, :address_line3,
19
+ :city, :contact, :contact_name,
20
+ :country, :country_name, :created,
21
+ :creator, :creator_full_name, :division,
22
+ :fax, :free_bool_field_01, :free_bool_field_02,
23
+ :free_bool_field_03, :free_bool_field_04, :free_bool_field_05,
24
+ :free_date_field_01, :free_date_field_02, :free_date_field_03,
25
+ :free_date_field_04, :free_date_field_05, :free_number_field_01,
26
+ :free_number_field_02, :free_number_field_03, :free_number_field_04,
27
+ :free_number_field_05, :free_text_field_01, :free_text_field_02,
28
+ :free_text_field_03, :free_text_field_04, :free_text_field_05,
29
+ :mailbox, :main, :modified, :modifier, :modifier_full_name,
30
+ :nic_number, :notes, :phone, :phone_extension, :postcode,
31
+ :state, :state_description, :type,
32
+ :warehouse, :warehouse_code, :warehouse_description
33
+ ]
34
+ end
35
+ end
36
+ end
@@ -25,7 +25,7 @@ module Elmas
25
25
  bank_account bank_description
26
26
  bank_name BIC_code description
27
27
  division format IBAN type
28
- type_description
28
+ type_description main
29
29
  ]
30
30
  end
31
31
  end
@@ -0,0 +1,37 @@
1
+ module Elmas
2
+ class GoodsDelivery
3
+ include Elmas::Resource
4
+ include Elmas::SharedSalesAttributes
5
+
6
+ # For some reason the Exact API for GoodsDelivery requires us to specify
7
+ # the fields we want returned. This isn't required for other calls. :/
8
+ # We get around this by specifying a wildcard on the $select param.
9
+ def find_all(options = {})
10
+ @order_by = options[:order_by]
11
+ @select = options[:select] ||= ['*']
12
+ response = get(uri([:order, :select]))
13
+ response.results if response
14
+ end
15
+
16
+ def base_path
17
+ "salesorder/GoodsDeliveries"
18
+ end
19
+
20
+ def mandatory_attributes
21
+ [:goods_delivery_lines]
22
+ end
23
+
24
+ def other_attributes
25
+ SHARED_SALES_ATTRIBUTES.inject(
26
+ [
27
+ :delivery_account, :delivery_account_code, :delivery_account_name,
28
+ :delivery_address, :delivery_contact, :delivery_contact_person_full_name,
29
+ :delivery_date, :delivery_number,
30
+ :shipping_method, :shipping_method_code, :shipping_method_description,
31
+ :tracking_number, :warehouse, :warehouse_code, :warehouse_description
32
+ ],
33
+ :<<
34
+ )
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,38 @@
1
+ module Elmas
2
+ class GoodsDeliveryLine
3
+ # TODO: Fill out mandatory and other attributes
4
+ include Elmas::Resource
5
+ include Elmas::SharedSalesAttributes
6
+
7
+ # For some reason the Exact API for GoodsDelivery requires us to specify
8
+ # the fields we want returned. This isn't required for other calls. :/
9
+ # We get around this by specifying a wildcard on the $select param.
10
+ def find_all(options = {})
11
+ @order_by = options[:order_by]
12
+ @select = options[:select] ||= ['*']
13
+ response = get(uri([:order, :select]))
14
+ response.results if response
15
+ end
16
+
17
+ def base_path
18
+ "salesorder/GoodsDeliveryLines"
19
+ end
20
+
21
+ def mandatory_attributes
22
+ [:delivery_date, :item, :line_number, :sales_order_number]
23
+ end
24
+
25
+ def other_attributes
26
+ SHARED_LINE_ATTRIBUTES.inject(
27
+ [
28
+ :quantity_delivered, :quantity_ordered,
29
+ :sales_order_line_id, :sales_order_line_number,
30
+ :serial_numbers, :storage_location,
31
+ :tracking_number, :unit_code
32
+ ],
33
+ :<<
34
+ )
35
+ end
36
+
37
+ end
38
+ end
@@ -29,8 +29,8 @@ module Elmas
29
29
  document_layout email_creation_error email_creation_success email_layout
30
30
  extra_text invoice_date postbox_message_creation_error
31
31
  postbox_message_creation_success postbox_sender reporting_period
32
- reporting_year send_email_to_customer send_invoice_to_customer_postbox
33
- send_output_based_on_account
32
+ reporting_year send_email_to_customer sender_email_address
33
+ send_invoice_to_customer_postbox send_output_based_on_account
34
34
  ]
35
35
  end
36
36
  end
@@ -17,7 +17,7 @@ module Elmas
17
17
 
18
18
  def other_attributes
19
19
  SHARED_SALES_ATTRIBUTES.inject(
20
- %i[sales_invoice_lines due_date sales_person starter_sales_invoice_status type],
20
+ %i[sales_invoice_lines due_date salesperson starter_sales_invoice_status type],
21
21
  :<<
22
22
  )
23
23
  end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Elmas
4
+ class User
5
+ include Elmas::Resource
6
+
7
+ def base_path
8
+ "users/Users"
9
+ end
10
+
11
+ def mandatory_attributes
12
+ []
13
+ end
14
+
15
+ # https://start.exactonline.nl/docs/HlpRestAPIResourcesDetails.aspx?name=UsersUsers
16
+ def other_attributes
17
+ %i[
18
+ birth_date birth_name created creator creator_full_name customer
19
+ customer_name email end_date first_name full_name gender
20
+ has_registered_for_two_step_verification has_two_step_verification
21
+ initials language last_login last_name middle_name mobile modified
22
+ modifier modifier_full_name nationality notes phone phone_extension
23
+ profile_code start_date start_division title user_name
24
+ ]
25
+ end
26
+ end
27
+ end
data/lib/elmas/version.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  module Elmas
4
4
  class Version
5
5
  MAJOR = 2
6
- MINOR = 5
6
+ MINOR = 6
7
7
  PATCH = 0
8
8
 
9
9
  class << self
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elmas
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marthyn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-02 00:00:00.000000000 Z
11
+ date: 2018-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeresource
@@ -281,6 +281,7 @@ files:
281
281
  - lib/elmas/request.rb
282
282
  - lib/elmas/resource.rb
283
283
  - lib/elmas/resources/account.rb
284
+ - lib/elmas/resources/address.rb
284
285
  - lib/elmas/resources/aging_receivables_list.rb
285
286
  - lib/elmas/resources/bank_account.rb
286
287
  - lib/elmas/resources/bank_entry.rb
@@ -297,6 +298,8 @@ files:
297
298
  - lib/elmas/resources/general_journal_entry.rb
298
299
  - lib/elmas/resources/general_journal_entry_line.rb
299
300
  - lib/elmas/resources/gl_account.rb
301
+ - lib/elmas/resources/goods_delivery.rb
302
+ - lib/elmas/resources/goods_delivery_line.rb
300
303
  - lib/elmas/resources/item.rb
301
304
  - lib/elmas/resources/item_group.rb
302
305
  - lib/elmas/resources/journal.rb
@@ -319,6 +322,7 @@ files:
319
322
  - lib/elmas/resources/time_transaction.rb
320
323
  - lib/elmas/resources/transaction.rb
321
324
  - lib/elmas/resources/transaction_line.rb
325
+ - lib/elmas/resources/user.rb
322
326
  - lib/elmas/resources/vat_code.rb
323
327
  - lib/elmas/response.rb
324
328
  - lib/elmas/result_set.rb