has_accounts 0.18.4 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
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