From bc1eb3bc44a3c7f45b62ffff1959e42a12c1146f Mon Sep 17 00:00:00 2001 From: wvengen Date: Fri, 10 Apr 2015 21:25:09 +0200 Subject: [PATCH] Show receive button in grey when already received --- app/helpers/orders_helper.rb | 14 ++++++++++++++ app/views/orders/index.html.haml | 3 +-- app/views/orders/show.html.haml | 3 +-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/helpers/orders_helper.rb b/app/helpers/orders_helper.rb index 30081a1e..b6109755 100644 --- a/app/helpers/orders_helper.rb +++ b/app/helpers/orders_helper.rb @@ -139,4 +139,18 @@ module OrdersHelper 'unavailable' end end + + # Button for receiving an order. + # If the order hasn't been received before, the button is shown in green. + # @param order [Order] + # @option options [String] :class Classes added to the button's class attribute. + # @return [String] Order receive button. + def receive_button(order, options={}) + if order.stockit? + content_tag :div, t('orders.index.action_receive'), class: "btn disabled #{options[:class]}" + else + was_received = order.order_articles.where('units_received IS NOT NULL').any? + link_to t('orders.index.action_receive'), receive_order_path(order), class: "btn#{' btn-success' unless was_received} #{options[:class]}" + end + end end diff --git a/app/views/orders/index.html.haml b/app/views/orders/index.html.haml index be6d7f1d..f0cd8bfa 100644 --- a/app/views/orders/index.html.haml +++ b/app/views/orders/index.html.haml @@ -54,8 +54,7 @@ %td= truncate(order.note) %td - unless order.stockit? - -# TODO btn-success class only if not received before - = link_to t('.action_receive'), receive_order_path(order), class: 'btn btn-small btn-success' + = receive_button order %td = link_to t('ui.copy'), new_order_path(order_id: order, supplier_id: order.supplier), class: 'btn btn-small' diff --git a/app/views/orders/show.html.haml b/app/views/orders/show.html.haml index 9944e6cd..e5bca03b 100644 --- a/app/views/orders/show.html.haml +++ b/app/views/orders/show.html.haml @@ -64,8 +64,7 @@ data: {confirm: t('.confirm_end', order: @order.name)} = link_to t('ui.edit'), edit_order_path(@order), class: 'btn' - elsif not @order.closed? and not @order.stockit? - -# TODO btn-success class only if not received before - = link_to t('orders.index.action_receive'), receive_order_path(@order), class: 'btn btn-success' + = receive_button @order - unless @order.closed? = link_to t('ui.delete'), @order, data: {confirm: t('.confirm_delete')}, method: :delete, class: 'btn btn-danger'