ish_manager 0.1.8.459 → 0.1.8.461
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/app/controllers/ish_manager/invoices_controller.rb +4 -4
- data/app/controllers/ish_manager/iro_option_gets_controller.rb +100 -57
- data/app/views/ish_manager/application/home.haml +8 -0
- data/app/views/ish_manager/invoices/new_stripe.haml +31 -28
- data/app/views/ish_manager/iro_watches/max_pain.haml +11 -15
- data/app/views/ish_manager/leads/show.haml +2 -1
- data/config/routes.rb +6 -5
- 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: a936861bb4879bb1d16f7e04dadf42d0932dd47bb73dfaa89b63c72267655dae
|
4
|
+
data.tar.gz: 5ebcfead1814dfe078ef49a41e1c0b21af6f87c952e493838e89ef4450e8fd58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13c83e9dd12495f4fa9d3e71464a693c9949fe4b7e5b2f34b580f4b24c55d9093741a63221b6b45af96427e7b3e1a9c755596b6b812e7244d7f4feabb1d1994d
|
7
|
+
data.tar.gz: 7d7ac4f8fbe39793720d1bed308dd138731533b23601a2745935883e22e4e63be65baa58ecbf3b4463a8cdb56a5117a44cbb51eb565d4e2c20cb53fae5164fb4
|
@@ -22,8 +22,7 @@ class ::IshManager::InvoicesController < IshManager::ApplicationController
|
|
22
22
|
})
|
23
23
|
end
|
24
24
|
|
25
|
-
|
26
|
-
def create
|
25
|
+
def create_stripe
|
27
26
|
@invoice = Ish::Invoice.new params[:invoice].permit!
|
28
27
|
authorize! :create, @invoice
|
29
28
|
|
@@ -35,11 +34,12 @@ class ::IshManager::InvoicesController < IshManager::ApplicationController
|
|
35
34
|
pending_invoice_items_behavior: 'exclude',
|
36
35
|
})
|
37
36
|
params[:invoice][:items].each do |item|
|
38
|
-
stripe_price = Wco::Product.find( item ).price_id
|
37
|
+
stripe_price = Wco::Product.find( item[:product_id] ).price_id
|
39
38
|
invoice_item = Stripe::InvoiceItem.create({
|
40
39
|
customer: @invoice.leadset.customer_id,
|
41
40
|
price: stripe_price,
|
42
41
|
invoice: stripe_invoice.id,
|
42
|
+
quantity: item[:quantity],
|
43
43
|
})
|
44
44
|
end
|
45
45
|
Stripe::Invoice.send_invoice(stripe_invoice[:id])
|
@@ -71,7 +71,7 @@ class ::IshManager::InvoicesController < IshManager::ApplicationController
|
|
71
71
|
|
72
72
|
def new_stripe
|
73
73
|
authorize! :new, @invoice
|
74
|
-
@leadset
|
74
|
+
@leadset = Leadset.find params[:leadset_id]
|
75
75
|
@products_list = Wco::Product.list
|
76
76
|
end
|
77
77
|
|
@@ -16,57 +16,49 @@ class ::IshManager::IroOptionGetsController < IshManager::ApplicationController
|
|
16
16
|
redirect_to action: 'index', controller: 'ish_manager/iro_watches'
|
17
17
|
end
|
18
18
|
|
19
|
+
|
20
|
+
=begin
|
21
|
+
|
22
|
+
select t1.putCall, t1.symbol, t1.strikePrice, t1.openInterest, t1.created_at
|
23
|
+
from iro_option_price_items t1
|
24
|
+
join (
|
25
|
+
select symbol, max(created_at) as c1
|
26
|
+
from iro_option_price_items
|
27
|
+
where expirationDate = 1694808000000 and ticker = 'GME'
|
28
|
+
group by symbol ) as t2
|
29
|
+
on t1.symbol = t2.symbol and t1.created_at = t2.c1
|
30
|
+
order by t1.strikePrice, t1.created_at desc;
|
31
|
+
|
32
|
+
=end
|
33
|
+
|
34
|
+
|
35
|
+
##
|
36
|
+
## Tda::Option.get_chain({ ticker: 'GME' })
|
37
|
+
##
|
38
|
+
## SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
|
39
|
+
## SET sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));
|
40
|
+
##
|
19
41
|
def max_pain
|
20
42
|
authorize! :max_pain, Iro::Iro
|
21
|
-
@ticker
|
22
|
-
|
23
|
-
@expirationDate
|
24
|
-
|
25
|
-
# expirationDate = '1690574400000'
|
26
|
-
@all_items = {}
|
27
|
-
|
28
|
-
calls_sql = " select distinct putCall, symbol, strikePrice, openInterest, max(created_at)
|
29
|
-
from iro_option_price_items
|
30
|
-
where expirationDate = #{@expirationDate} and putCall = 'CALL' and ticker = '#{@ticker}'
|
31
|
-
group by putCall, symbol, strikePrice, openInterest
|
32
|
-
order by strikePrice, max(created_at) desc; "
|
33
|
-
@calls_items = []
|
34
|
-
@calls_array = ActiveRecord::Base.connection.execute(calls_sql)
|
35
|
-
calls_subtotal = 0
|
36
|
-
@calls_array.each do |_item|
|
37
|
-
# puts! _item, 'item'
|
38
|
-
item = {
|
39
|
-
putCall: _item[0],
|
40
|
-
symbol: _item[1],
|
41
|
-
strikePrice: _item[2],
|
42
|
-
oi: _item[3],
|
43
|
-
created_at: _item[4],
|
44
|
-
}
|
45
|
-
# puts! item, 'item'
|
46
|
-
item[:subtotal] = item[:strikePrice] * 100 * item[:oi]
|
47
|
-
calls_subtotal = calls_subtotal + item[:subtotal]
|
48
|
-
item[:total] = calls_subtotal
|
49
|
-
puts! item, 'item'
|
50
|
-
@calls_items.push( item )
|
43
|
+
@ticker = params[:ticker]
|
44
|
+
@expirationDate = ( params[:date].to_date + 15.hours ).to_time.to_i * 1000
|
45
|
+
# puts! @expirationDate, '@expirationDate'
|
46
|
+
@all_items = {}
|
51
47
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
48
|
+
sql = " select t1.putCall, t1.symbol, t1.strikePrice, t1.openInterest, t1.created_at
|
49
|
+
from iro_option_price_items t1
|
50
|
+
join (
|
51
|
+
select symbol, max(created_at) as c1
|
52
|
+
from iro_option_price_items
|
53
|
+
where expirationDate = #{@expirationDate} and ticker = '#{@ticker}'
|
54
|
+
group by symbol ) as t2
|
55
|
+
on t1.symbol = t2.symbol and t1.created_at = t2.c1
|
56
|
+
order by t1.strikePrice, t1.created_at desc;
|
57
|
+
"
|
60
58
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
group by putCall, symbol, strikePrice, openInterest, created_at
|
65
|
-
order by putCall, strikePrice, created_at desc;"
|
66
|
-
@puts_items = []
|
67
|
-
@puts_array = ActiveRecord::Base.connection.execute(puts_sql)
|
68
|
-
puts_subtotal = 0
|
69
|
-
@puts_array.each do |_item|
|
59
|
+
results_array = ActiveRecord::Base.connection.execute(sql)
|
60
|
+
results_array.each do |_item|
|
61
|
+
# puts! _item, '_item'
|
70
62
|
item = {
|
71
63
|
putCall: _item[0],
|
72
64
|
symbol: _item[1],
|
@@ -74,20 +66,71 @@ class ::IshManager::IroOptionGetsController < IshManager::ApplicationController
|
|
74
66
|
oi: _item[3],
|
75
67
|
created_at: _item[4],
|
76
68
|
}
|
77
|
-
item[:subtotal] = item[:strikePrice] * 100 * item[:oi]
|
78
|
-
puts_subtotal = puts_subtotal + item[:subtotal]
|
79
|
-
item[:total] = puts_subtotal
|
80
|
-
puts! item, 'item'
|
81
|
-
@puts_items.push( item )
|
82
69
|
@all_items[item[:strikePrice]] ||= {
|
83
|
-
|
84
|
-
|
70
|
+
strike_price: item[:strikePrice],
|
71
|
+
call_max_pain: 0,
|
72
|
+
put_max_pain: 0,
|
85
73
|
}
|
86
|
-
|
87
|
-
|
88
|
-
|
74
|
+
if 'CALL' == item[:putCall]
|
75
|
+
@all_items[item[:strikePrice]][:call_oi] = item[:oi]
|
76
|
+
else
|
77
|
+
@all_items[item[:strikePrice]][:put_oi] = item[:oi]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
@all_items.each_with_index do |_item, idx|
|
82
|
+
strike_price = _item[0]
|
83
|
+
item = _item[1]
|
84
|
+
# break if idx > 3
|
85
|
+
# puts! item, 'item'
|
86
|
+
|
87
|
+
@all_items.each do |next_strike_price, next_item|
|
88
|
+
if next_strike_price < strike_price
|
89
|
+
if next_item[:call_oi] > 0
|
90
|
+
@all_items[strike_price][:call_max_pain] += 100 * next_item[:call_oi] * (strike_price - next_strike_price)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
if next_strike_price > strike_price
|
95
|
+
if next_item[:put_oi] > 0
|
96
|
+
@all_items[strike_price][:put_max_pain] += 100 * next_item[:put_oi] * (next_strike_price - strike_price)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
|
89
102
|
end
|
90
103
|
|
104
|
+
# puts_sql = "select putCall, symbol, strikePrice, openInterest, created_at
|
105
|
+
# from iro_option_price_items
|
106
|
+
# where expirationDate = #{@expirationDate} and putCall = 'PUT' and ticker = '#{@ticker}'
|
107
|
+
# group by putCall, symbol, strikePrice, openInterest, created_at
|
108
|
+
# order by putCall, strikePrice, created_at desc;"
|
109
|
+
# @puts_items = []
|
110
|
+
# @puts_array = ActiveRecord::Base.connection.execute(puts_sql)
|
111
|
+
# puts_subtotal = 0
|
112
|
+
# @puts_array.each do |_item|
|
113
|
+
# item = {
|
114
|
+
# putCall: _item[0],
|
115
|
+
# symbol: _item[1],
|
116
|
+
# strikePrice: _item[2],
|
117
|
+
# oi: _item[3],
|
118
|
+
# created_at: _item[4],
|
119
|
+
# }
|
120
|
+
# item[:subtotal] = item[:strikePrice] * 100 * item[:oi]
|
121
|
+
# puts_subtotal = puts_subtotal + item[:subtotal]
|
122
|
+
# item[:total] = puts_subtotal
|
123
|
+
# puts! item, 'item'
|
124
|
+
# @puts_items.push( item )
|
125
|
+
# @all_items[item[:strikePrice]] ||= {
|
126
|
+
# subtotal: 0,
|
127
|
+
# strikePrice: item[:strikePrice],
|
128
|
+
# }
|
129
|
+
# @all_items[item[:strikePrice]][:puts_subtotal] = puts_subtotal
|
130
|
+
# @all_items[item[:strikePrice]][:puts_oi] = item[:oi]
|
131
|
+
# @all_items[item[:strikePrice]][:subtotal] = @all_items[item[:strikePrice]][:subtotal] + puts_subtotal
|
132
|
+
# end
|
133
|
+
|
91
134
|
|
92
135
|
render 'ish_manager/iro_watches/max_pain'
|
93
136
|
end
|
@@ -15,6 +15,14 @@
|
|
15
15
|
= text_field_tag "search_query"
|
16
16
|
= submit_tag 'search'
|
17
17
|
|
18
|
+
.bordered-card
|
19
|
+
= form_tag "https://wiki.wasya.co/index.php", method: :get, target: :_blank do
|
20
|
+
%p Search wiki.wasya.co:
|
21
|
+
= text_field_tag "search"
|
22
|
+
= submit_tag 'search'
|
23
|
+
|
24
|
+
|
25
|
+
|
18
26
|
.bordered-card
|
19
27
|
%h5.center.text-center USD to COP
|
20
28
|
#root{ width: 500, height: 300 }
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
- url = invoice.persisted? ? invoice_path( invoice.id ) : invoices_path
|
4
2
|
- invoice = @new_invoice
|
3
|
+
- url = invoice.persisted? ? invoice_path( invoice.id ) : create_invoice_stripe_path
|
4
|
+
|
5
5
|
|
6
6
|
.invoices-new.max-width
|
7
7
|
|
@@ -9,30 +9,33 @@
|
|
9
9
|
.col.s12.col.m6.col-md-offset-3
|
10
10
|
%h5 New Stripe Invoice for `#{link_to @leadset&.name, leadset_path(@leadset)}`:
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
12
|
+
= form_for invoice, :as => :invoice, :url => url do |f|
|
13
|
+
= hidden_field_tag 'invoice[leadset_id]', @leadset.id
|
14
|
+
|
15
|
+
.input-field
|
16
|
+
%label Email
|
17
|
+
= @leadset.email
|
18
|
+
-# - if @leadset.email
|
19
|
+
-# = f.text_field :email, value: @leadset.email
|
20
|
+
-# - elsif @leadset.employees.length == 1
|
21
|
+
-# = f.text_field :email, value: @leadset.employees[0].email
|
22
|
+
-# - else
|
23
|
+
-# = f.select :email, options_for_select([[nil,nil]] + @leadset.employees.map { |i| [ i.email, i.email ] } )
|
24
|
+
|
25
|
+
.input-field
|
26
|
+
%label item
|
27
|
+
= select_tag 'invoice[items][][product_id]', options_for_select( @products_list )
|
28
|
+
.input-field
|
29
|
+
%label quantity
|
30
|
+
= number_field_tag 'invoice[items][][quantity]'
|
31
|
+
|
32
|
+
-# .input-field
|
33
|
+
-# %label number
|
34
|
+
-# = f.number_field :number
|
35
|
+
|
36
|
+
-# .input-field
|
37
|
+
-# %label Description
|
38
|
+
-# = f.text_area :description
|
39
|
+
|
40
|
+
= f.submit 'Save'
|
38
41
|
|
@@ -3,21 +3,17 @@
|
|
3
3
|
.header
|
4
4
|
%h2.title max pain for #{@ticker} on #{params[:date]}
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
- flag = false
|
8
7
|
%ul
|
9
|
-
-
|
10
|
-
|
11
|
-
- item = @all_items[_t[:strikePrice]]
|
12
|
-
- if !flag && item[:puts_subtotal] < item[:calls_subtotal]
|
13
|
-
%hr
|
14
|
-
- flag = true
|
8
|
+
- @all_items.each do |strike_price, item|
|
9
|
+
- item.delete( :strike_price )
|
15
10
|
%li
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
11
|
+
- if item[:call_max_pain] > item[:put_max_pain] && !flag
|
12
|
+
- flag = true
|
13
|
+
%hr
|
14
|
+
|
15
|
+
<b>#{strike_price}</b>
|
16
|
+
= item.inspect
|
17
|
+
|
18
|
+
-# %li Call pain: #{number_to_currency item[:calls_subtotal], precision: 0}
|
23
19
|
|
@@ -62,7 +62,8 @@
|
|
62
62
|
%hr
|
63
63
|
%h5
|
64
64
|
Invoices (?)
|
65
|
-
= link_to '[+]',
|
65
|
+
= link_to '[+stripe]', new_invoice_stripe_path({ leadset_id: @lead.m3_leadset_id })
|
66
|
+
= link_to '[+pdf]', new_invoice_pdf_path({ leadset_id: @lead.m3_leadset_id })
|
66
67
|
%ul
|
67
68
|
%li None?
|
68
69
|
|
data/config/routes.rb
CHANGED
@@ -25,9 +25,10 @@ IshManager::Engine.routes.draw do
|
|
25
25
|
|
26
26
|
get 'image_assets', to: 'image_assets#index', as: :image_assets
|
27
27
|
|
28
|
-
post 'invoices/create-pdf',
|
29
|
-
|
30
|
-
get
|
28
|
+
post 'invoices/create-pdf', to: 'invoices#create_pdf', as: :create_invoice_pdf
|
29
|
+
post 'invoices/create-stripe', to: 'invoices#create_stripe', as: :create_invoice_stripe
|
30
|
+
get 'invoices/new_pdf', to: 'invoices#new_pdf', as: :new_invoice_pdf
|
31
|
+
get 'invoices/new_stripe', to: 'invoices#new_stripe', as: :new_invoice_stripe
|
31
32
|
resources :invoices
|
32
33
|
|
33
34
|
get 'iro_positins/roll_prep/:id', to: 'iro_purses#roll_prep', as: :iro_roll_prep
|
@@ -37,8 +38,8 @@ IshManager::Engine.routes.draw do
|
|
37
38
|
resources :iro_option_gets
|
38
39
|
|
39
40
|
patch 'iro_purses/:id/show', to: 'iro_purses#update'
|
40
|
-
get 'iro_purses/:id/edit',
|
41
|
-
get 'iro_purses/:id/:kind',
|
41
|
+
get 'iro_purses/:id/edit', to: 'iro_purses#edit', as: :edit_iro_purse
|
42
|
+
get 'iro_purses/:id/:kind', to: 'iro_purses#show', as: :iro_purse, defaults: { kind: 'show' } # kind: show_gameui
|
42
43
|
resources :iro_purses
|
43
44
|
|
44
45
|
resources :iro_strategies
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ish_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.8.
|
4
|
+
version: 0.1.8.461
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- piousbox
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-09-
|
11
|
+
date: 2023-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|