vfwcash 0.6.2 → 0.7.1
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/lib/models/cash_account.rb +5 -7
- data/lib/models/gcash.rb +4 -1
- data/lib/models/split.rb +7 -0
- data/lib/models/tran.rb +17 -2
- data/lib/vfwcash.rb +17 -1
- data/lib/vfwcash/api.rb +1 -1
- data/lib/vfwcash/version.rb +1 -1
- data/vfwcash-0.6.2.gem +0 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01cc5a2a237aac00aca7a215901eb9a4a50ae8be
|
4
|
+
data.tar.gz: c678096ccdc03dc9f812d54c7a6f3bd2647b2345
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: deae047d8fa465ddb45d29b0e19c446c13f3db7f434e49a1fb2124debb51046825717bb0803b8b22d3762331f5f734a910b9e74b7fe97fb00337197b83a3fa50
|
7
|
+
data.tar.gz: 56e56720a816258dbbfa67b6960eef57143edc5b936217bcf642a5f094eec7e2cd58934dc07ce644a1dfaa8af5e466d91debdc784d8bdc49f67ef57e0d0dcdb0
|
data/lib/models/cash_account.rb
CHANGED
@@ -56,15 +56,13 @@ class CashAccount < SqliteBase
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def balance_on(date)
|
59
|
-
sp = self.splits.joins(:tran).where(
|
59
|
+
sp = self.splits.joins(:tran).where(Tran.arel_table[:post_date].lt(date.to_s(:db)))
|
60
60
|
b = sp.sum(:value_num)
|
61
61
|
end
|
62
62
|
|
63
|
-
def balances_between(
|
64
|
-
|
65
|
-
|
66
|
-
bb = self.balance_on(first)
|
67
|
-
sp = splits_by_month(fdate,ldate)
|
63
|
+
def balances_between(from,to)
|
64
|
+
bb = self.balance_on(from)
|
65
|
+
sp = splits_by_month(from,to)
|
68
66
|
credits = sp.where('value_num < ?',0).sum(:value_num)
|
69
67
|
debits = sp.where('value_num >= ?', 0).sum(:value_num)
|
70
68
|
diff = debits + credits
|
@@ -72,7 +70,7 @@ class CashAccount < SqliteBase
|
|
72
70
|
end
|
73
71
|
|
74
72
|
def splits_by_month(bom,eom)
|
75
|
-
self.splits.joins(:tran).where(
|
73
|
+
self.splits.joins(:tran).where(transactions:{post_date: Vfwcash.str_date_range(bom,eom)})
|
76
74
|
end
|
77
75
|
|
78
76
|
def children_balance(decimal=true)
|
data/lib/models/gcash.rb
CHANGED
@@ -217,7 +217,10 @@ module Vfwcash
|
|
217
217
|
|
218
218
|
def period_splits(acct)
|
219
219
|
flipper = acct.account_type == 'INCOME' ? -1 : 1
|
220
|
-
sp = acct.splits.joins(:tran).where('transactions.post_date between ? and ?',@from.strftime('%Y%m%d')+'00',@to.strftime('%Y%m%d')+'24')
|
220
|
+
# sp = acct.splits.joins(:tran).where('transactions.post_date between ? and ?',@from.strftime('%Y%m%d')+'00',@to.strftime('%Y%m%d')+'24')
|
221
|
+
sp = acct.splits.joins(:tran).where(transactions:{post_date: Vfwcash.str_date_range(@from,@to)})
|
222
|
+
|
223
|
+
|
221
224
|
sp.sum(:value_num) * flipper
|
222
225
|
end
|
223
226
|
|
data/lib/models/split.rb
CHANGED
@@ -2,6 +2,13 @@ class Split < SqliteBase
|
|
2
2
|
self.primary_key = 'guid'
|
3
3
|
belongs_to :tran, foreign_key: 'tx_guid'
|
4
4
|
belongs_to :cash_account, foreign_key: 'account_guid'
|
5
|
+
|
6
|
+
attribute :rdate, :date
|
7
|
+
after_find do |s|
|
8
|
+
if s.reconcile_date.present?
|
9
|
+
s.rdate = Date.parse(s.reconcile_date)
|
10
|
+
end
|
11
|
+
end
|
5
12
|
|
6
13
|
def amount
|
7
14
|
return "#{self.value_num / self.value_denom}.#{self.value_num % self.value_denom}"
|
data/lib/models/tran.rb
CHANGED
@@ -4,9 +4,24 @@ class Tran < SqliteBase
|
|
4
4
|
|
5
5
|
has_many :splits, foreign_key: 'tx_guid'
|
6
6
|
|
7
|
+
attribute :date, :date
|
8
|
+
after_find do |t|
|
9
|
+
if t.post_date.present?
|
10
|
+
t.date = Date.parse(t.post_date)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
# def self.month_transactions(date)
|
16
|
+
# month = Vfwcash.yyyymm(date)
|
17
|
+
# trans = Tran.where('transactions.post_date BETWEEN ? and ?',month+"00",month+"32").order(:post_date,:num)
|
18
|
+
# end
|
19
|
+
|
7
20
|
def self.month_transactions(date)
|
8
|
-
|
9
|
-
|
21
|
+
bom = date.beginning_of_month.to_s(:db)
|
22
|
+
eom = date.end_of_month.to_s(:db)
|
23
|
+
trans = Tran.where(post_date:(bom..eom)).order(:post_date,:num)
|
10
24
|
end
|
11
25
|
|
26
|
+
|
12
27
|
end
|
data/lib/vfwcash.rb
CHANGED
@@ -36,14 +36,30 @@ module Vfwcash
|
|
36
36
|
date = Date.today
|
37
37
|
elsif date.class == Date
|
38
38
|
else
|
39
|
+
# has to be string
|
39
40
|
if date.length == 6
|
40
41
|
date += '01'
|
42
|
+
date = Date.parse(date)
|
43
|
+
else
|
44
|
+
date = Date.parse(date)
|
41
45
|
end
|
42
|
-
date = Date.parse(date)
|
43
46
|
end
|
44
47
|
date
|
45
48
|
end
|
46
49
|
|
50
|
+
def self.str_date_range(from,to)
|
51
|
+
# used for
|
52
|
+
db = Tran.last.post_date.include?('-')
|
53
|
+
from = Vfwcash.set_date(from)
|
54
|
+
to = Vfwcash.set_date(to)
|
55
|
+
if db
|
56
|
+
return (from.to_s(:db))..(to.to_s(:db))
|
57
|
+
else
|
58
|
+
return (from.to_s(:number))..(to.to_s(:number))
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
|
47
63
|
def self.money(int)
|
48
64
|
dollars = int / 100
|
49
65
|
cents = (int % 100) / 100.0
|
data/lib/vfwcash/api.rb
CHANGED
data/lib/vfwcash/version.rb
CHANGED
data/vfwcash-0.6.2.gem
ADDED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vfwcash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Alex
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-08-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -172,6 +172,7 @@ files:
|
|
172
172
|
- pdf_examples/views/checkbooks/split.html.slim
|
173
173
|
- pdf_examples/views/checkbooks/summary.html.slim
|
174
174
|
- vfwcash-0.6.1.gem
|
175
|
+
- vfwcash-0.6.2.gem
|
175
176
|
- vfwcash.gemspec
|
176
177
|
homepage: ''
|
177
178
|
licenses:
|