has_accounts 0.18.4 → 0.19.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.
Files changed (41) hide show
  1. data/app/controllers/accounts_controller.rb +49 -0
  2. data/app/controllers/bank_accounts_controller.rb +2 -0
  3. data/app/controllers/bookings_controller.rb +67 -0
  4. data/app/models/bank_account.rb +3 -0
  5. data/app/models/booking.rb +19 -16
  6. data/app/views/accounts/_account.html.haml +12 -0
  7. data/app/views/accounts/_booking_item.html.haml +15 -0
  8. data/app/views/accounts/_booking_list_footer.html.haml +2 -0
  9. data/app/views/accounts/_booking_list_header.html.haml +8 -0
  10. data/app/views/accounts/_booking_list_paginate.html.haml +5 -0
  11. data/app/views/accounts/_booking_list_saldo.html.haml +8 -0
  12. data/app/views/accounts/_booking_list_turnover.html.haml +8 -0
  13. data/app/views/accounts/_carry_booking.html.haml +9 -0
  14. data/app/views/accounts/_edit_booking.html.haml +14 -0
  15. data/app/views/accounts/_edit_bookings.html.haml +15 -0
  16. data/app/views/accounts/_form.html.haml +7 -0
  17. data/app/views/accounts/_list_footer.html.haml +2 -0
  18. data/app/views/accounts/_list_header.html.haml +5 -0
  19. data/app/views/accounts/_show.html.haml +9 -0
  20. data/app/views/accounts/_show_bookings.html.haml +19 -0
  21. data/app/views/accounts/edit_bookings.html.haml +5 -0
  22. data/app/views/accounts/edit_bookings.js.erb +2 -0
  23. data/app/views/accounts/index.html.haml +9 -0
  24. data/app/views/accounts/show.html.haml +10 -0
  25. data/app/views/bank_accounts/_bank_account.html.haml +1 -0
  26. data/app/views/bank_accounts/_form.html.haml +10 -0
  27. data/app/views/bookings/_booking.html.haml +17 -0
  28. data/app/views/bookings/_form.html.haml +28 -0
  29. data/app/views/bookings/_list.html.haml +16 -0
  30. data/app/views/bookings/_new_form.html.haml +5 -0
  31. data/app/views/bookings/_sidebar.html.haml +6 -0
  32. data/app/views/bookings/_simple_form.html.haml +25 -0
  33. data/app/views/bookings/new.html.haml +8 -0
  34. data/app/views/bookings/select.html.haml +11 -0
  35. data/app/views/bookings/show.html.haml +7 -0
  36. data/app/views/bookings/simple_edit.html.haml +4 -0
  37. data/config/locales/de.yml +12 -6
  38. data/config/locales/en.yml +3 -0
  39. data/config/routes.rb +35 -0
  40. data/lib/has_accounts/version.rb +1 -1
  41. metadata +37 -2
@@ -0,0 +1,49 @@
1
+ class AccountsController < AuthorizedController
2
+ # Scopes
3
+ has_scope :by_value_period, :using => [:from, :to], :default => proc { |c| c.session[:has_scope] }
4
+ has_scope :by_text
5
+
6
+ def index
7
+ @accounts = apply_scopes(Account).includes(:account_type).includes(:credit_bookings, :credit_bookings)
8
+ end
9
+
10
+ def show
11
+ @account = Account.find(params[:id])
12
+ @bookings = apply_scopes(Booking).includes(:debit_account => :account_type, :credit_account => :account_type).by_account(@account)
13
+
14
+ if params[:only_credit_bookings]
15
+ @bookings = @bookings.where(:credit_account_id => @account.id)
16
+ end
17
+ if params[:only_debit_bookings]
18
+ @bookings = @bookings.where(:debit_account_id => @account.id)
19
+ end
20
+ @bookings = @bookings
21
+ @carry_booking = @bookings.all.first
22
+
23
+ show!
24
+ end
25
+
26
+ def csv_bookings
27
+ @account = Account.find(params[:id])
28
+ @bookings = apply_scopes(Booking).by_account(@account)
29
+ send_csv @bookings, :only => [:value_date, :title, :comments, :amount, 'credit_account.code', 'debit_account.code'], :filename => "%s-%s.csv" % [@account.code, @account.title]
30
+ end
31
+
32
+ def edit_bookings
33
+ @account = Account.find(params[:id])
34
+ @bookings = apply_scopes(Booking).by_account(@account)
35
+ end
36
+
37
+ def update_bookings
38
+ bookings = params[:bookings]
39
+
40
+ bookings.each do |id, attributes|
41
+ attributes.merge!({:credit_account_id => Account.find_by_code(attributes[:credit_account_code]).id})
42
+ attributes.merge!({:debit_account_id => Account.find_by_code(attributes[:debit_account_code]).id})
43
+ Booking.find(id).update_attributes(attributes)
44
+ end
45
+
46
+ account = Account.find(params[:id])
47
+ redirect_to account
48
+ end
49
+ end
@@ -0,0 +1,2 @@
1
+ class BankAccountsController < AccountsController
2
+ end
@@ -0,0 +1,67 @@
1
+ class BookingsController < AuthorizedController
2
+ # Scopes
3
+ has_scope :by_value_period, :using => [:from, :to], :default => proc { |c| c.session[:has_scope] }
4
+ has_scope :by_text
5
+
6
+ # Actions
7
+ def index
8
+ # @bookings = apply_scopes(Booking).accessible_by(current_ability, :list).includes(:credit_account, :debit_account).paginate(:page => params[:page], :per_page => params[:per_page])
9
+ index!
10
+ end
11
+
12
+ def new
13
+ @booking = Booking.new(:value_date => Date.today)
14
+ # Only include base class records
15
+ @booking_templates = BookingTemplate.where(:type => [nil, 'BookingTemplate']).where("NOT(code LIKE '%:%')").paginate(:page => params[:page])
16
+ new!
17
+ end
18
+
19
+ def select_booking
20
+ @booking = Booking.find(params[:id]).dup
21
+
22
+ # Clear reference
23
+ @booking.reference = nil
24
+
25
+ increment_booking_code
26
+ # Take value date from form
27
+ @booking.value_date = params[:booking][:value_date]
28
+
29
+ render :action => 'simple_edit'
30
+ end
31
+
32
+ def simple_edit
33
+ new!
34
+ end
35
+
36
+ def select
37
+ @booking = Booking.new(params[:booking])
38
+ increment_booking_code
39
+ @booking_templates = BookingTemplate.where(:type => [nil, 'BookingTemplate']).where("NOT(code LIKE '%:%')").paginate(:page => params[:page])
40
+ @bookings = Booking.where("title LIKE ?", '%' + @booking.title + '%').order('value_date DESC').paginate(:page => params[:page])
41
+ end
42
+
43
+ def create
44
+ @booking = Booking.new(params[:booking])
45
+
46
+ create! do |success, failure|
47
+ success.html do
48
+ redirect_to new_booking_path
49
+ end
50
+ failure.html {render 'edit'}
51
+ end
52
+ end
53
+
54
+ def copy
55
+ original_booking = Booking.find(params[:id])
56
+
57
+ @booking = original_booking.dup
58
+
59
+ render 'edit'
60
+ end
61
+
62
+ private
63
+
64
+ def increment_booking_code
65
+ @booking.code = (Booking.maximum(:code) || 0) + 1
66
+ end
67
+ end
@@ -1,3 +1,6 @@
1
1
  class BankAccount < Account
2
+ # Access restrictions
3
+ attr_accessible :pc_id, :esr_id, :bank_id
4
+
2
5
  belongs_to :bank
3
6
  end
@@ -1,6 +1,6 @@
1
1
  class Booking < ActiveRecord::Base
2
2
  # Access restrictions
3
- attr_accessible :title, :comments, :amount, :debit_account, :credit_account, :value_date
3
+ attr_accessible :title, :comments, :amount, :value_date, :code
4
4
 
5
5
  # Validation
6
6
  validates_presence_of :debit_account, :credit_account, :title, :value_date
@@ -12,7 +12,9 @@ class Booking < ActiveRecord::Base
12
12
 
13
13
  # Account
14
14
  belongs_to :debit_account, :foreign_key => 'debit_account_id', :class_name => "Account"
15
+ attr_accessible :debit_account, :debit_account_id
15
16
  belongs_to :credit_account, :foreign_key => 'credit_account_id', :class_name => "Account"
17
+ attr_accessible :credit_account, :credit_account_id
16
18
 
17
19
  def debit_account_code
18
20
  debit_account.code
@@ -30,10 +32,10 @@ class Booking < ActiveRecord::Base
30
32
 
31
33
  def direct_account
32
34
  return nil unless reference
33
-
35
+
34
36
  return reference.direct_account if reference.respond_to? :direct_account
35
37
  end
36
-
38
+
37
39
  def contra_account(account = nil)
38
40
  # Derive from direct_account if available
39
41
  account ||= direct_account
@@ -48,7 +50,7 @@ class Booking < ActiveRecord::Base
48
50
  return nil
49
51
  end
50
52
  end
51
-
53
+
52
54
  def balance_account
53
55
  return credit_account if credit_account.is_balance_account?
54
56
  return debit_account if debit_account.is_balance_account?
@@ -70,7 +72,7 @@ class Booking < ActiveRecord::Base
70
72
  where("date(value_date) <= :to", :to => to)
71
73
  end
72
74
  }
73
-
75
+
74
76
  scope :by_account, lambda {|account_id|
75
77
  { :conditions => ["debit_account_id = :account_id OR credit_account_id = :account_id", {:account_id => account_id}] }
76
78
  } do
@@ -78,7 +80,7 @@ class Booking < ActiveRecord::Base
78
80
  def titles
79
81
  find(:all, :group => :title).map{|booking| booking.title}
80
82
  end
81
-
83
+
82
84
  # Statistics per booking title.
83
85
  #
84
86
  # The statistics are an array of hashes with keys title, count, sum, average.
@@ -89,21 +91,21 @@ class Booking < ActiveRecord::Base
89
91
 
90
92
  scope :by_text, lambda {|value|
91
93
  text = '%' + value + '%'
92
-
94
+
93
95
  amount = value.delete("'").to_f
94
96
  if amount == 0.0
95
97
  amount = nil unless value.match(/^[0.]*$/)
96
98
  end
97
-
99
+
98
100
  date = nil
99
101
  begin
100
102
  date = Date.parse(value)
101
103
  rescue ArgumentError
102
104
  end
103
-
105
+
104
106
  where("title LIKE :text OR comments LIKE :text OR amount = :amount OR value_date = :value_date", :text => text, :amount => amount, :value_date => date)
105
107
  }
106
-
108
+
107
109
  # Returns array of all years we have bookings for
108
110
  def self.fiscal_years
109
111
  with_exclusive_scope do
@@ -153,11 +155,11 @@ class Booking < ActiveRecord::Base
153
155
  def amount_as_string
154
156
  '%0.2f' % amount
155
157
  end
156
-
158
+
157
159
  def amount_as_string=(value)
158
160
  self.amount = value
159
161
  end
160
-
162
+
161
163
  def rounded_amount
162
164
  if amount.nil?
163
165
  return 0
@@ -174,17 +176,18 @@ class Booking < ActiveRecord::Base
174
176
  # Set amount
175
177
  new_booking[:amount] = amount
176
178
  self.amount -= amount
177
-
179
+
178
180
  # Update attributes
179
181
  params.each{|key, value|
180
182
  new_booking[key] = value
181
183
  }
182
-
184
+
183
185
  [self, new_booking]
184
186
  end
185
-
187
+
186
188
  # Reference
187
189
  belongs_to :reference, :polymorphic => true, :touch => true, :inverse_of => :bookings
190
+ attr_accessible :reference_id, :reference_type
188
191
 
189
192
  after_save :touch_previous_reference
190
193
  def touch_previous_reference
@@ -218,7 +221,7 @@ class Booking < ActiveRecord::Base
218
221
  balance
219
222
  end
220
223
  end
221
-
224
+
222
225
  private
223
226
  def notify_references
224
227
  return unless reference and reference.respond_to?(:booking_saved)
@@ -0,0 +1,12 @@
1
+ %tr[account]
2
+ %td= account.code
3
+ %td= link_to account.title, url_for(account), {'data-href-container' => 'tr'}, :by_value_period => params[:by_value_period]
4
+ - if @date
5
+ %td{:style => "text-align: right"}= currency_fmt(account.saldo(@date))
6
+ - elsif params[:by_value_period]
7
+ %td{:style => "text-align: right"}= currency_fmt(account.saldo(params[:by_value_period][:from]..params[:by_value_period][:to]))
8
+ - else
9
+ %td{:style => "text-align: right"}= currency_fmt(account.saldo)
10
+ %td.action-links
11
+ = list_link_for(:edit, account)
12
+ = list_link_for(:delete, account)
@@ -0,0 +1,15 @@
1
+ %tr[@booking]
2
+ %td= @booking.value_date
3
+ %td
4
+ = link_to @booking.title, @booking, {'data-href-container' => 'tr'}
5
+ - if @booking.comments.present?
6
+ %hr{:style => "height: 1px; margin: 0"}/
7
+ %i= @booking.comments
8
+ %td= link_to @booking.reference.to_s(:reference), @booking.reference unless @booking.reference.nil?
9
+ %td.currency= (@booking.credit_account == @account) ? currency_fmt(@booking.amount) : content_tag('i', link_to(@booking.credit_account.code, account_path(@booking.credit_account), :title => @booking.credit_account.title))
10
+ %td.currency= (@booking.debit_account == @account) ? currency_fmt(@booking.amount) : content_tag('i', link_to(@booking.debit_account.code, account_path(@booking.debit_account), :title => @booking.debit_account.title))
11
+ %td.currency= currency_fmt(@saldo)
12
+ %td.action-links
13
+ = list_link_for(:edit, [@account, @booking])
14
+ = list_link_for(:delete, [@account, @booking], :remote => true)
15
+ = list_link_for(:copy, @booking)
@@ -0,0 +1,2 @@
1
+ = render 'accounts/booking_list_turnover'
2
+ = render 'accounts/booking_list_saldo'
@@ -0,0 +1,8 @@
1
+ %tr
2
+ %th= t_attr :date, Booking
3
+ %th= t_attr :text, Booking
4
+ %th= t_attr :reference, Booking
5
+ %th.currency= t_attr :credit_account, Booking
6
+ %th.currency= t_attr :debit_account, Booking
7
+ %th.currency= t_attr :balance, Booking
8
+ %th.action-links.count-3
@@ -0,0 +1,5 @@
1
+ %tr
2
+ - ## TODO: See http://groups.google.com/group/will_paginate/browse_thread/thread/5d702999d78e47e5
3
+ - url_params = {:controller => 'accounts', :action => 'show', :id => params[:account_id] || params[:id]}
4
+ %th{:colspan => "6", :style => "text-align: right"}= will_paginate @bookings, :params => url_params.merge(:query => params[:query])
5
+ %th
@@ -0,0 +1,8 @@
1
+ %tr#booking_list_saldo{:style => "border-top: double 2px black"}
2
+ %td{:colspan => "2"}
3
+ Kontostand (per #{@bookings.last.value_date})
4
+ %td
5
+ %td
6
+ %td
7
+ %td{:style => "text-align: right"}= currency_fmt(@account.saldo(@bookings.last))
8
+ %td
@@ -0,0 +1,8 @@
1
+ - credit_turnover, debit_turnover = @account.turnover(@bookings)
2
+ %tr#booking_list_turnover{:style => "border-top: double 2px black"}
3
+ %td{:colspan => "3"}
4
+ Umsatz (#{h @bookings.first.value_date} bis #{h @bookings.last.value_date})
5
+ %td{:style => "text-align: right"}= currency_fmt(credit_turnover)
6
+ %td{:style => "text-align: right"}= currency_fmt(debit_turnover)
7
+ %td
8
+ %td
@@ -0,0 +1,9 @@
1
+ %tr{:id => "carry_booking"}
2
+ %td= @carry_booking.value_date
3
+ %td
4
+ = t('bookyt.carry_booking')
5
+ %td
6
+ %td
7
+ %td
8
+ %td{:style => "text-align: right"}= currency_fmt(@saldo)
9
+ %td.action-links
@@ -0,0 +1,14 @@
1
+ %tr
2
+ = f.fields_for "", edit_booking do |f|
3
+ %td.span2= f.text_field :value_date, :style => 'width: 96%'
4
+ %td.span6
5
+ = f.text_field :title, :style => 'width: 98%'
6
+ = f.text_field :comments, :style => 'width: 98%'
7
+ = f.hidden_field :reference_type, :value => 'Invoice'
8
+ = f.select :reference_id, suggested_invoices_for_booking(f.object), :include_blank => true, :style => 'width: 98%', :class => 'combobox'
9
+ %td.span1= f.text_field :amount, :style => 'width: 94%'
10
+
11
+ %td.span1= f.association :credit_account, :collection => accounts_as_collection(Account.all), :as => :combobox, :style => 'width: 94%', :wrapper => :inline
12
+ %td.span1= f.association :debit_account, :collection => accounts_as_collection(Account.all), :as => :combobox, :style => 'width: 94%', :wrapper => :inline
13
+
14
+ %td{:style => 'display:none'}= f.hidden_field :id
@@ -0,0 +1,15 @@
1
+ - url_params = {:controller => 'accounts', :action => 'show', :id => params[:account_id] || params[:id]}
2
+ = paginated_section @bookings, :params => url_params.merge(:query => params[:query]) do
3
+ = simple_form_for :bookings, :url => update_bookings_account_path do |f|
4
+ %table.table.table-striped
5
+ %thead
6
+ %tr
7
+ %th= t_attr :value_date, Booking
8
+ %th= t_attr :title, Booking
9
+ %th= t_attr :amount, Booking
10
+ %th= t_attr :credit_account, Booking
11
+ %th= t_attr :debit_account, Booking
12
+ %tbody
13
+ = render :partial => 'edit_booking', :collection => @bookings, :locals => {:f => f}
14
+
15
+ = f.button :submit
@@ -0,0 +1,7 @@
1
+ = simple_form_for @account do |f|
2
+ = f.input :code
3
+ = f.input :title
4
+ = f.association :account_type, :label_method => :title
5
+
6
+ .form-actions
7
+ = f.button :submit
@@ -0,0 +1,2 @@
1
+ %tr
2
+ %th{:colspan => "4", :style => "text-align: right"}= will_paginate @accounts, :params => {:query => params[:query]}
@@ -0,0 +1,5 @@
1
+ %tr
2
+ %th= t_attr(:code, Account)
3
+ %th= t_attr(:title, Account)
4
+ %th{:style => "text-align: right"}= t_attr(:saldo, Account)
5
+ %th.action-links
@@ -0,0 +1,9 @@
1
+ .tabbable
2
+ %ul.nav.nav-tabs
3
+ %li.active= link_to t_title(:journal, Account), '#tab-bookings', {:data => {:toggle => 'tab'}}
4
+ %li= link_to t_title(:info, Account), '#tab-info', {:data => {:toggle => 'tab'}}
5
+ %li= link_to t_title(:list, Attachment), '#tab-attachments', {:data => {:toggle => 'tab'}}
6
+
7
+ .tab-content
8
+ #tab-bookings.tab-pane.active= render 'show_bookings'
9
+ #tab-info.tab-pane= render "form"
@@ -0,0 +1,19 @@
1
+ - url_params = {:controller => 'accounts', :action => 'show', :id => params[:account_id] || params[:id]}
2
+
3
+ %table.table.table-striped.bookings.collection
4
+ %thead
5
+ = render 'accounts/booking_list_header'
6
+ - @saldo = @account.saldo(@carry_booking, false)
7
+ %tbody
8
+ = render 'accounts/carry_booking' unless @saldo == 0
9
+
10
+ - for @booking in @bookings
11
+ - amount = @booking.amount
12
+ - amount = -(amount) if @account.is_liability_account?
13
+ - @saldo -= amount if @booking.debit_account == @account
14
+ - @saldo += amount if @booking.credit_account == @account
15
+ = render 'accounts/booking_item'
16
+ %tfoot
17
+ = render 'accounts/booking_list_footer' unless @bookings.empty?
18
+ = paginate @bookings
19
+
@@ -0,0 +1,5 @@
1
+ = contextual_links
2
+
3
+ = boot_page_title
4
+
5
+ = render 'edit_bookings'
@@ -0,0 +1,2 @@
1
+ $('#edit_bookings').replaceWith('<%=escape_javascript render "edit_bookings" %>');
2
+ $('#edit-bookings').addClass('active');
@@ -0,0 +1,9 @@
1
+ = contextual_links
2
+ = boot_page_title
3
+ %table.table.table-striped.accounts.collection
4
+ %thead
5
+ = render 'list_header'
6
+ %tbody
7
+ = render @accounts
8
+
9
+ = render 'bookings/sidebar'
@@ -0,0 +1,10 @@
1
+ .contextual
2
+ = icon_link_to 'only_credit_bookings', url_for(:only_credit_bookings => true) unless params[:only_credit_bookings]
3
+ = icon_link_to 'only_debit_bookings', url_for(:only_debit_bookings => true) unless params[:only_debit_bookings]
4
+ = icon_link_to 'all_bookings', @account if params[:only_credit_bookings] || params[:only_debit_bookings]
5
+ = contextual_links_for
6
+
7
+ = boot_page_title
8
+ = render 'show'
9
+
10
+ = render 'bookings/sidebar'
@@ -0,0 +1 @@
1
+ = render 'accounts/account', :account => bank_account
@@ -0,0 +1,10 @@
1
+ = simple_form_for @bank_account do |f|
2
+ = f.input :code
3
+ = f.input :pc_id
4
+ = f.input :esr_id
5
+ = f.input :title
6
+ = f.association :account_type, :label_method => :title
7
+ = f.association :bank, :as => :combobox
8
+
9
+ .form-actions
10
+ = f.button :submit
@@ -0,0 +1,17 @@
1
+ - item_action ||= lambda{|object| url_for(object)}
2
+
3
+ %tr[booking]
4
+ %td= booking.value_date
5
+ %td
6
+ = link_to booking.title, item_action.call(booking), 'data-href-container' => 'tr'
7
+ - if booking.comments.present?
8
+ %hr{:style => "height: 1px; margin: 0"}/
9
+ %i= booking.comments
10
+ %td= link_to booking.reference.to_s(:reference), booking.reference unless booking.reference.nil?
11
+ %td= link_to booking.credit_account.code, account_path(booking.credit_account), :title => booking.credit_account.title unless booking.credit_account.nil?
12
+ %td= link_to booking.debit_account.code, account_path(booking.debit_account), :title => booking.debit_account.title unless booking.debit_account.nil?
13
+ %td.currency= currency_fmt(booking.amount)
14
+ %td.action-links
15
+ = list_link_for(:edit, booking)
16
+ = list_link_for(:delete, booking, :remote => true)
17
+ = list_link_for(:copy, booking)
@@ -0,0 +1,28 @@
1
+ = simple_form_for @booking do |f|
2
+ .row-fluid
3
+ .span6
4
+ = f.input :title, :input_html => {"data-autofocus" => true}
5
+ .span6
6
+ = f.input :value_date, :as => :date_field
7
+ .row-fluid
8
+ .span6
9
+ = f.input :amount, :as => :string, :input_html => {:size => 12}
10
+ .span6
11
+ = f.input :code
12
+
13
+ .row-fluid
14
+ .span6
15
+ = f.association :credit_account, :collection => accounts_as_collection(Account.all), :as => :combobox
16
+ .span6
17
+ = f.association :debit_account, :collection => accounts_as_collection(Account.all), :as => :combobox
18
+
19
+ .row-fluid
20
+ .span12
21
+ = f.input :comments, :input_html => {:rows => 4, :class => 'span12'}
22
+
23
+ .row-fluid
24
+ .span12
25
+ = f.input :reference_type, :as => :hidden, :input_html => {:value => 'Invoice'}
26
+ //= f.association :reference, :collection => suggested_invoices_for_booking(@booking, :include_all => true), :as => :combobox, :include_blank => true
27
+
28
+ = f.button :submit
@@ -0,0 +1,16 @@
1
+ %table.table.table-striped.bookings.collection
2
+ %thead
3
+ %tr
4
+ %th= t_attr :valuta
5
+ %th= t_attr :title
6
+ %th= t_attr :reference
7
+ %th= t_attr :credit_account
8
+ %th= t_attr :debit_account
9
+ %th.currency= t_attr 'amount'
10
+ %th.action-links
11
+ %tbody
12
+ = render collection, :item_action => (item_action ||= nil)
13
+
14
+ = paginate collection
15
+
16
+ = render 'bookings/sidebar'
@@ -0,0 +1,5 @@
1
+ = simple_form_for @booking, :url => select_bookings_path do |f|
2
+ = hidden_field_tag :stage, 'select'
3
+ = f.input :title, :input_html => {'data-autofocus' => true}
4
+ = f.input :value_date, :as => :date_field, :input_html => {:size => 10, :style => 'text-align: right'}
5
+ = f.button :submit
@@ -0,0 +1,6 @@
1
+ - filter_name = :by_value_period
2
+ - content_for :sidebar do
3
+ - filters = current_tenant.fiscal_years.reverse.map do |period|
4
+ - value = {"from" => period[:from].to_s(:db), "to" => period[:to].to_s(:db)}
5
+ - {:value => value, :title => period[:to].year}
6
+ = boot_nav_filter(filter_name, [{:title => :all, :value => nil}] + filters)
@@ -0,0 +1,25 @@
1
+ = simple_form_for @booking do |f|
2
+
3
+ .row-fluid
4
+ .span6
5
+ = f.input :title, :input_html => {"data-autofocus" => true}
6
+ .span6
7
+ = f.input :value_date, :as => :date_field
8
+ .row-fluid
9
+ .span6
10
+ = f.input :amount, :as => :string, :input_html => {:size => 12}
11
+ .span6
12
+ = f.input :code
13
+
14
+ .row-fluid
15
+ .span6
16
+ = f.association :credit_account, :collection => accounts_as_collection(Account.all), :as => :combobox
17
+ .span6
18
+ = f.association :debit_account, :collection => accounts_as_collection(Account.all), :as => :combobox
19
+
20
+ .row-fluid
21
+ .span12
22
+ = f.input :comments, :input_html => {:rows => 4}
23
+
24
+ = f.button :submit
25
+
@@ -0,0 +1,8 @@
1
+ = contextual_links
2
+
3
+ = boot_page_title(BookingTemplate)
4
+ = render 'booking_templates/list', :item_action => lambda{|object| new_booking_booking_template_path(object)}
5
+
6
+ = boot_page_title
7
+ = render 'new_form'
8
+
@@ -0,0 +1,11 @@
1
+ = contextual_links
2
+
3
+ = boot_page_title :new
4
+
5
+ = render 'form'
6
+
7
+ %h3= t_model(BookingTemplate)
8
+ = render 'booking_templates/list', :item_action => lambda{|object| new_booking_booking_template_path(object)}
9
+
10
+ %h3= t_model(Booking)
11
+ = render 'bookings/list', :item_action => lambda{|object| select_booking_booking_path(object, :booking => params[:booking])}
@@ -0,0 +1,7 @@
1
+ .contextual
2
+ = contextual_links_for
3
+ = icon_link_to :copy
4
+
5
+ = boot_page_title
6
+
7
+ = render 'show'
@@ -0,0 +1,4 @@
1
+ = contextual_links
2
+
3
+ = boot_page_title :new
4
+ = render 'simple_form'
@@ -45,18 +45,24 @@ de:
45
45
  value: Betrag
46
46
 
47
47
  # Title customizations
48
- account:
48
+ accounts:
49
49
  index:
50
- title: Konti
51
- bank_account:
50
+ title: Kontenplan
51
+ bank_accounts:
52
52
  index:
53
53
  title: Bankkonti
54
- bank:
54
+ banks:
55
55
  index:
56
56
  title: Banken
57
- account_type:
57
+ account_types:
58
58
  index:
59
59
  title: Kontentypen
60
- booking:
60
+ bookings:
61
61
  index:
62
62
  title: Buchungsjournal
63
+ copy:
64
+ title: Buchung kopieren
65
+
66
+ crud:
67
+ action:
68
+ copy: Kopieren
@@ -60,3 +60,6 @@ en:
60
60
  booking:
61
61
  index:
62
62
  title: Booking Journal
63
+ crud:
64
+ action:
65
+ copy: Kopieren
data/config/routes.rb ADDED
@@ -0,0 +1,35 @@
1
+ # encoding: UTF-8
2
+
3
+ # Routes
4
+ Rails.application.routes.draw do
5
+ # Bookings
6
+ resources :bookings do
7
+ collection do
8
+ post :select
9
+ get :simple_edit
10
+ end
11
+ member do
12
+ get :select_booking
13
+ get :copy
14
+ end
15
+ end
16
+
17
+ resources :accounts do
18
+ member do
19
+ get :csv_bookings
20
+ get :edit_bookings
21
+ post :update_bookings
22
+ end
23
+ resources :bookings
24
+ resources :attachments
25
+ end
26
+
27
+ resources :banks
28
+ resources :bank_accounts do
29
+ member do
30
+ get :csv_bookings
31
+ end
32
+ resources :bookings
33
+ resources :attachments
34
+ end
35
+ end
@@ -1,3 +1,3 @@
1
1
  module HasAccounts
2
- VERSION = "0.18.4"
2
+ VERSION = "0.19.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_accounts
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.4
4
+ version: 0.19.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-21 00:00:00.000000000 Z
12
+ date: 2013-01-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -85,6 +85,9 @@ extra_rdoc_files:
85
85
  - MIT-LICENSE
86
86
  - README.md
87
87
  files:
88
+ - app/controllers/accounts_controller.rb
89
+ - app/controllers/bank_accounts_controller.rb
90
+ - app/controllers/bookings_controller.rb
88
91
  - app/helpers/account_helper.rb
89
92
  - app/models/account.rb
90
93
  - app/models/account_scope_extension.rb
@@ -92,8 +95,40 @@ files:
92
95
  - app/models/bank.rb
93
96
  - app/models/bank_account.rb
94
97
  - app/models/booking.rb
98
+ - app/views/accounts/_account.html.haml
99
+ - app/views/accounts/_booking_item.html.haml
100
+ - app/views/accounts/_booking_list_footer.html.haml
101
+ - app/views/accounts/_booking_list_header.html.haml
102
+ - app/views/accounts/_booking_list_paginate.html.haml
103
+ - app/views/accounts/_booking_list_saldo.html.haml
104
+ - app/views/accounts/_booking_list_turnover.html.haml
105
+ - app/views/accounts/_carry_booking.html.haml
106
+ - app/views/accounts/_edit_booking.html.haml
107
+ - app/views/accounts/_edit_bookings.html.haml
108
+ - app/views/accounts/_form.html.haml
109
+ - app/views/accounts/_list_footer.html.haml
110
+ - app/views/accounts/_list_header.html.haml
111
+ - app/views/accounts/_show.html.haml
112
+ - app/views/accounts/_show_bookings.html.haml
113
+ - app/views/accounts/edit_bookings.html.haml
114
+ - app/views/accounts/edit_bookings.js.erb
115
+ - app/views/accounts/index.html.haml
116
+ - app/views/accounts/show.html.haml
117
+ - app/views/bank_accounts/_bank_account.html.haml
118
+ - app/views/bank_accounts/_form.html.haml
119
+ - app/views/bookings/_booking.html.haml
120
+ - app/views/bookings/_form.html.haml
121
+ - app/views/bookings/_list.html.haml
122
+ - app/views/bookings/_new_form.html.haml
123
+ - app/views/bookings/_sidebar.html.haml
124
+ - app/views/bookings/_simple_form.html.haml
125
+ - app/views/bookings/new.html.haml
126
+ - app/views/bookings/select.html.haml
127
+ - app/views/bookings/show.html.haml
128
+ - app/views/bookings/simple_edit.html.haml
95
129
  - config/locales/de.yml
96
130
  - config/locales/en.yml
131
+ - config/routes.rb
97
132
  - db/migrate/20111108000000_create_has_accounts_tables.rb
98
133
  - db/migrate/20111109093857_use_string_for_account_number.rb
99
134
  - db/migrate/20111230121259_bank_now_inherits_from_person.rb