Add more infos to the invoice page

When a foodcoop does not use the balancing feature the invoice page is
the main page for informations. Add all related information to it, so
people do not need to open the balancing page.
This commit is contained in:
Patrick Gansterer 2016-03-04 22:26:55 +01:00
parent f5b6fbcf18
commit 5e744453f8
6 changed files with 37 additions and 1 deletions

View file

@ -20,7 +20,24 @@ class Delivery < ActiveRecord::Base
def includes_article?(article) def includes_article?(article)
self.stock_changes.map{|stock_change| stock_change.stock_article.id}.include? article.id self.stock_changes.map{|stock_change| stock_change.stock_article.id}.include? article.id
end end
def sum(type = :gross)
total = 0
for sc in stock_changes
article = sc.stock_article
quantity = sc.quantity
case type
when :net
total += quantity * article.price
when :gross
total += quantity * article.gross_price
when :fc
total += quantity * article.fc_price
end
end
total
end
protected protected
def stock_articles_must_be_unique def stock_articles_must_be_unique

View file

@ -1,5 +1,7 @@
- title t('.title', number: @invoice.number) - title t('.title', number: @invoice.number)
- total = 0
%p %p
%b= heading_helper(Invoice, :created_at) + ':' %b= heading_helper(Invoice, :created_at) + ':'
= format_time(@invoice.created_at) = format_time(@invoice.created_at)
@ -15,15 +17,21 @@
%b= heading_helper(Invoice, :deliveries) + ':' %b= heading_helper(Invoice, :deliveries) + ':'
%span>< %span><
- @invoice.deliveries.order(:delivered_on).each_with_index do |delivery, index| - @invoice.deliveries.order(:delivered_on).each_with_index do |delivery, index|
- sum = delivery.sum
- total += sum
= ', ' if index > 0 = ', ' if index > 0
= link_to format_date(delivery.delivered_on), [delivery.supplier,delivery] = link_to format_date(delivery.delivered_on), [delivery.supplier,delivery]
= ' (' + number_to_currency(sum) + ')'
- if @invoice.orders.any? - if @invoice.orders.any?
%p %p
%b= heading_helper(Invoice, :orders) + ':' %b= heading_helper(Invoice, :orders) + ':'
%span>< %span><
- @invoice.orders.order(:ends).each_with_index do |order, index| - @invoice.orders.order(:ends).each_with_index do |order, index|
- sum = order.sum
- total += sum
= ', ' if index > 0 = ', ' if index > 0
= link_to format_date(order.ends), new_finance_order_path(order_id: order) = link_to format_date(order.ends), new_finance_order_path(order_id: order)
= ' (' + number_to_currency(sum) + ')'
%p %p
%b= heading_helper(Invoice, :number) + ':' %b= heading_helper(Invoice, :number) + ':'
@ -43,6 +51,13 @@
%p %p
%b= heading_helper(Invoice, :deposit_credit) + ':' %b= heading_helper(Invoice, :deposit_credit) + ':'
= number_to_currency @invoice.deposit_credit = number_to_currency @invoice.deposit_credit
%p
%b= heading_helper(Invoice, :net_amount) + ':'
= number_to_currency @invoice.net_amount
- if @invoice.deliveries.any? || @invoice.orders.any?
%p
%b= heading_helper(Invoice, :total) + ':'
= number_to_currency total
%p %p
%b= heading_helper(Invoice, :note) + ':' %b= heading_helper(Invoice, :note) + ':'
=h @invoice.note =h @invoice.note

View file

@ -60,6 +60,7 @@ de:
deliveries: Lieferung deliveries: Lieferung
deposit: Pfand berechnet deposit: Pfand berechnet
deposit_credit: Pfand gutgeschrieben deposit_credit: Pfand gutgeschrieben
net_amount: Pfandbereinigter Betrag
note: Notiz note: Notiz
number: Nummer number: Nummer
orders: Bestellung orders: Bestellung

View file

@ -60,6 +60,7 @@ en:
deliveries: Delivery deliveries: Delivery
deposit: Deposit charged deposit: Deposit charged
deposit_credit: Deposit returned deposit_credit: Deposit returned
net_amount: Amount adjusted for refund
note: Note note: Note
number: Number number: Number
orders: Order orders: Order

View file

@ -60,6 +60,7 @@ fr:
deliveries: Réapprovisionnement deliveries: Réapprovisionnement
deposit: Consigne facturée deposit: Consigne facturée
deposit_credit: Consigne remboursée deposit_credit: Consigne remboursée
net_amount: Montant recalculé en excluant les consignes
note: Note note: Note
number: Numéro number: Numéro
orders: Commande orders: Commande

View file

@ -60,6 +60,7 @@ nl:
deliveries: Levering deliveries: Levering
deposit: Statiegeld in rekening gebracht deposit: Statiegeld in rekening gebracht
deposit_credit: Statiegeld teruggekregen deposit_credit: Statiegeld teruggekregen
net_amount: Bedrag gecorrigeerd voor statiegeld
note: Notitie note: Notitie
number: Nummer number: Nummer
orders: Bestelling orders: Bestelling