has_accounts 0.6.1 → 0.7.0
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.
- data/Rakefile +13 -9
- data/app/models/booking.rb +2 -2
- data/app/models/booking.rb~ +1 -1
- data/lib/generators/has_accounts/migration_generator.rb +26 -0
- data/lib/generators/has_accounts/templates/migration.rb +59 -0
- data/lib/has_accounts/model.rb +1 -1
- data/lib/has_accounts/model.rb~ +1 -4
- metadata +6 -4
data/Rakefile
CHANGED
@@ -1,16 +1,20 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require 'rubygems'
|
3
|
+
begin
|
4
|
+
require 'bundler/setup'
|
5
|
+
rescue LoadError
|
6
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
7
|
+
end
|
8
|
+
|
1
9
|
require 'rake'
|
2
|
-
require 'rake/testtask'
|
3
10
|
require 'rake/rdoctask'
|
4
11
|
|
5
|
-
|
6
|
-
|
12
|
+
require 'rspec/core'
|
13
|
+
require 'rspec/core/rake_task'
|
7
14
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
t.pattern = 'test/**/*_test.rb'
|
12
|
-
t.verbose = true
|
13
|
-
end
|
15
|
+
RSpec::Core::RakeTask.new(:spec)
|
16
|
+
|
17
|
+
task :default => :spec
|
14
18
|
|
15
19
|
desc 'Generate documentation for the has_accounts plugin.'
|
16
20
|
Rake::RDocTask.new(:rdoc) do |rdoc|
|
data/app/models/booking.rb
CHANGED
@@ -31,8 +31,8 @@ class Booking < ActiveRecord::Base
|
|
31
31
|
# Scoping
|
32
32
|
default_scope order('value_date, id')
|
33
33
|
|
34
|
-
scope :by_value_date, lambda {|value_date| where(
|
35
|
-
scope :by_value_period, lambda {|from, to| where(
|
34
|
+
scope :by_value_date, lambda {|value_date| where("date(value_date) = ?", value_date) }
|
35
|
+
scope :by_value_period, lambda {|from, to| where("date(value_date) BETWEEN :from AND :to", :from => from, :to => to) }
|
36
36
|
|
37
37
|
scope :by_account, lambda {|account_id|
|
38
38
|
{ :conditions => ["debit_account_id = :account_id OR credit_account_id = :account_id", {:account_id => account_id}] }
|
data/app/models/booking.rb~
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'rails/generators/base'
|
2
|
+
require 'rails/generators/migration'
|
3
|
+
|
4
|
+
module HasAccounts
|
5
|
+
class MigrationGenerator < Rails::Generators::Base
|
6
|
+
include Rails::Generators::Migration
|
7
|
+
|
8
|
+
def self.source_root
|
9
|
+
@source_root ||= File.join(File.dirname(__FILE__), 'templates')
|
10
|
+
end
|
11
|
+
|
12
|
+
# Implement the required interface for Rails::Generators::Migration.
|
13
|
+
# taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
|
14
|
+
def self.next_migration_number(dirname)
|
15
|
+
if ActiveRecord::Base.timestamped_migrations
|
16
|
+
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
17
|
+
else
|
18
|
+
"%.3d" % (current_migration_number(dirname) + 1)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_migration_file
|
23
|
+
migration_template 'migration.rb', 'db/migrate/setup_has_accounts_engine.rb'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
class SetupHasAccountsEngine < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table "account_types" do |t|
|
4
|
+
t.string "name", :limit => 100
|
5
|
+
t.string "title", :limit => 100
|
6
|
+
t.datetime "created_at"
|
7
|
+
t.datetime "updated_at"
|
8
|
+
end
|
9
|
+
|
10
|
+
create_table "accounts" do |t|
|
11
|
+
t.string "title", :limit => 100
|
12
|
+
t.integer "parent_id"
|
13
|
+
t.integer "account_type_id"
|
14
|
+
t.integer "number"
|
15
|
+
t.string "code"
|
16
|
+
t.integer "type"
|
17
|
+
t.integer "holder_id"
|
18
|
+
t.string "holder_type"
|
19
|
+
t.integer "bank_id"
|
20
|
+
t.integer "esr_id"
|
21
|
+
t.integer "pc_id"
|
22
|
+
t.datetime "created_at"
|
23
|
+
t.datetime "updated_at"
|
24
|
+
end
|
25
|
+
|
26
|
+
add_index "accounts", ["bank_id"], :name => "index_accounts_on_bank_id"
|
27
|
+
add_index "accounts", ["code"], :name => "index_accounts_on_code"
|
28
|
+
add_index "accounts", ["holder_id", "holder_type"], :name => "index_accounts_on_holder_id_and_holder_type"
|
29
|
+
add_index "accounts", ["type"], :name => "index_accounts_on_type"
|
30
|
+
|
31
|
+
create_table "banks" do |t|
|
32
|
+
t.integer "vcard_id"
|
33
|
+
t.datetime "created_at"
|
34
|
+
t.datetime "updated_at"
|
35
|
+
end
|
36
|
+
|
37
|
+
create_table "bookings" do |t|
|
38
|
+
t.string "title", :limit => 100
|
39
|
+
t.decimal "amount"
|
40
|
+
t.integer "credit_account_id"
|
41
|
+
t.integer "debit_account_id"
|
42
|
+
t.date "value_date"
|
43
|
+
t.text "comments", :limit => 1000, :default => ""
|
44
|
+
t.string "scan"
|
45
|
+
t.string "debit_currency", :default => "CHF"
|
46
|
+
t.string "credit_currency", :default => "CHF"
|
47
|
+
t.float "exchange_rate", :default => 1.0
|
48
|
+
t.datetime "created_at"
|
49
|
+
t.datetime "updated_at"
|
50
|
+
t.integer "reference_id"
|
51
|
+
t.string "reference_type"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.down
|
56
|
+
drop_table :account_types, :accounts, :banks, :bookings
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
data/lib/has_accounts/model.rb
CHANGED
@@ -14,7 +14,7 @@ module HasAccounts
|
|
14
14
|
balance = BigDecimal.new('0')
|
15
15
|
|
16
16
|
direct_bookings = scoped
|
17
|
-
direct_bookings = direct_bookings.where("value_date <= ?", value_date) if value_date
|
17
|
+
direct_bookings = direct_bookings.where("date(value_date) <= ?", value_date) if value_date
|
18
18
|
|
19
19
|
for booking in direct_bookings.all
|
20
20
|
balance += booking.accounted_amount(direct_account)
|
data/lib/has_accounts/model.rb~
CHANGED
@@ -40,10 +40,7 @@ module HasAccounts
|
|
40
40
|
booking_template = BookingTemplate.find_by_code(template_code)
|
41
41
|
|
42
42
|
# Prepare booking parameters
|
43
|
-
booking_params = {
|
44
|
-
:value_date => value_date,
|
45
|
-
:reference => self
|
46
|
-
}
|
43
|
+
booking_params = {:reference => self}
|
47
44
|
booking_params.merge!(params)
|
48
45
|
|
49
46
|
# Build and assign booking
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 0.
|
7
|
+
- 7
|
8
|
+
- 0
|
9
|
+
version: 0.7.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- "Simon H\xC3\xBCrlimann (CyT)"
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-04-
|
17
|
+
date: 2011-04-29 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -36,6 +36,8 @@ files:
|
|
36
36
|
- app/models/account_type.rb
|
37
37
|
- app/models/bank_account.rb
|
38
38
|
- app/models/booking.rb~
|
39
|
+
- lib/generators/has_accounts/templates/migration.rb
|
40
|
+
- lib/generators/has_accounts/migration_generator.rb
|
39
41
|
- lib/has_accounts.rb
|
40
42
|
- lib/has_accounts/model.rb~
|
41
43
|
- lib/has_accounts/class_methods.rb
|