lucadeal 0.2.7 → 0.2.9

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
  SHA256:
3
- metadata.gz: c9b1e922691e9d8fbc64c992e50e39068bd2652590b601ec70a13a3a49ede551
4
- data.tar.gz: cbecc49c20bbe61e7d1920f61ee3357d53ff4f44b7fc3582ee92e716a0cc670a
3
+ metadata.gz: a4958ee224643a3be3408a9b2c4043ac0ca37a1a4c7f3a537d626756a410e117
4
+ data.tar.gz: 74d8ead724f3cf89b0d5163565316c9421d1f8a81675e1fa28411b6248674b43
5
5
  SHA512:
6
- metadata.gz: f8e181b5272c1ced02af7b0fa5523004b352301ee9310d5aebbe8918ab7899d13a75c337c8627765f8be3fdfe9b9415598e372d8bc98b45b3b4f53615a8731d2
7
- data.tar.gz: e491c40bff3806dc911df1aae738d858c8e6537a992aa9b996ffeff0fa7ab83010d7f486a840556d6d08330097fa890ffb02a4ad0881064fd9a98a2df8d7cbcb
6
+ metadata.gz: 8f91f2b22e69bfa5bbde799ad4664a22b19513e75bcc5bf4a0459e5f0717a945d62abd73850821b320fcd0850c0a77537872f156769e3d3693c8e6c4de24c7c5
7
+ data.tar.gz: 4f333744805790545bc8ee27eb771b441a6be18dc2b635c15121a385ba7713880c22295c43e5524d1f593a55018ab506c1f56c79775db08583922594dfcab6c7
@@ -28,7 +28,7 @@ def contract(args = nil, params = {})
28
28
  case params['mode']
29
29
  when 'create'
30
30
  if params['customer_id']
31
- id = LucaDeal::Contract.new.generate!(params['customer_id'])
31
+ id = LucaDeal::Contract.new.generate!(params['customer_id'], params['category'])
32
32
  puts "Successfully generated Contract #{id}" if id
33
33
  puts 'Conditions are tentative. Edit contract detail.' if id
34
34
  else
@@ -87,6 +87,9 @@ when 'contract'
87
87
  params['mode'] = 'create'
88
88
  params['customer_id'] = v
89
89
  end
90
+ opt.on('--salesfee', 'create contract as sales fee definition') do |_v|
91
+ params['category'] = 'sales_fee'
92
+ end
90
93
  args = opt.parse(ARGV)
91
94
  contract(args, params)
92
95
  end
@@ -19,28 +19,52 @@ module LucaDeal
19
19
  def active
20
20
  self.class.all do |data|
21
21
  contract = parse_current(data)
22
+ contract['items'] = contract['items'].map { |item| parse_current(item) }
22
23
  next if !self.class.active_period?(contract)
23
24
 
24
25
  yield contract
25
26
  end
26
27
  end
27
28
 
28
- def generate!(customer_id)
29
+ def generate!(customer_id, mode = nil)
29
30
  LucaDeal::Customer.find(customer_id) do |customer|
30
31
  current_customer = parse_current(customer)
31
32
  obj = { 'customer_id' => current_customer['id'], 'customer_name' => current_customer['name'] }
33
+ obj['terms'] = { 'effective' => @date }
34
+ if mode == 'sales_fee'
35
+ obj.merge! salesfee_template
36
+ else
37
+ obj.merge! monthly_template
38
+ end
39
+ self.class.create(obj)
40
+ end
41
+ end
42
+
43
+ def self.active_period?(dat)
44
+ !dat.dig('terms').nil?
45
+ end
46
+
47
+ private
48
+
49
+ def monthly_template
50
+ {}.tap do |obj|
32
51
  obj['items'] = [{
33
52
  'name' => '_ITEM_NAME_FOR_INVOICE_',
34
53
  'qty' => 1,
35
54
  'price' => 0
36
55
  }]
37
- obj['terms'] = { 'billing_cycle' => 'monthly', 'effective' => @date }
38
- self.class.create(obj)
56
+ obj['terms'] = { 'billing_cycle' => 'monthly' }
39
57
  end
40
58
  end
41
59
 
42
- def self.active_period?(dat)
43
- !dat.dig('terms').nil?
60
+ def salesfee_template
61
+ {}.tap do |obj|
62
+ obj['rate'] = {
63
+ 'default' => '0.2',
64
+ 'initial' => '0.2'
65
+ }
66
+ obj['terms'] = { 'category' => 'sales_fee' }
67
+ end
44
68
  end
45
69
  end
46
70
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "luca_deal/version"
3
+ require 'luca_deal/version'
4
4
  require 'fileutils'
5
5
 
6
6
  module LucaDeal
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LucaDeal
4
- VERSION = "0.2.7"
4
+ VERSION = "0.2.9"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lucadeal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chuma Takahiro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-07 00:00:00.000000000 Z
11
+ date: 2020-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lucarecord
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.17'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.17'
41
41
  - !ruby/object:Gem::Dependency
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 12.3.3
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: 12.3.3
55
69
  description: 'Deal with contracts
56
70
 
57
71
  '