diff --git a/app/assets/javascripts/ordering.js b/app/assets/javascripts/ordering.js index ad2e9de8..1278956e 100644 --- a/app/assets/javascripts/ordering.js +++ b/app/assets/javascripts/ordering.js @@ -118,11 +118,25 @@ function update(item, quantity, tolerance) { $('#price_' + item + '_display').html(I18n.l("currency", itemTotal[item])); // update missing units - var missing_units = unit[item] - (((quantityOthers[item] + Number(quantity)) % unit[item]) + Number(tolerance) + toleranceOthers[item]) - if (missing_units < 0 || missing_units == unit[item]) { + var missing_units = unit[item] - (((quantityOthers[item] + Number(quantity)) % unit[item]) + Number(tolerance) + toleranceOthers[item]), + missing_units_css = ''; + if (missing_units < 0) { missing_units = 0; + missing_units_css = ''; + } else if (missing_units == unit[item]) { + missing_units = 0; + missing_units_css = 'missing-none'; + } else if (missing_units == 1) { + missing_units_css = 'missing-few'; + } else { + missing_units_css = 'missing-many'; } - $('#missing_units_' + item).html(String(missing_units)); + $('#missing_units_' + item) + .html(String(missing_units)) + .closest('tr') + .removeClass('missing-many missing-few missing-none') + .addClass(missing_units_css); + // update balance updateBalance(); diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css index b07ae65d..10c5985f 100644 --- a/app/assets/stylesheets/application.css +++ b/app/assets/stylesheets/application.css @@ -4,5 +4,6 @@ *= require token-input-bootstrappy *= require bootstrap-datepicker *= require list.unlist +*= require list.missing *= require recurring_select */ diff --git a/app/assets/stylesheets/list.missing.css b/app/assets/stylesheets/list.missing.css new file mode 100644 index 00000000..83b76dba --- /dev/null +++ b/app/assets/stylesheets/list.missing.css @@ -0,0 +1,11 @@ +.list .missing-many td, .list .missing-many:hover td { + background-color: #ebbebe; +} + +.list .missing-few td, .list .missing-few:hover td { + background-color: #ffee75; +} + +.list .missing-none td, .list .missing-none:hover td { + background-color: #cff5be; +} diff --git a/app/helpers/group_orders_helper.rb b/app/helpers/group_orders_helper.rb index 90282c53..37e13d53 100644 --- a/app/helpers/group_orders_helper.rb +++ b/app/helpers/group_orders_helper.rb @@ -43,4 +43,14 @@ module GroupOrdersHelper {group_order_article: goa, quantity: quantity, tolerance: tolerance, result: result, sub_total: sub_total} end + + def get_missing_units_css_class(quantity_missing) + if ( quantity_missing == 1 ) + return 'missing-few'; + elsif ( quantity_missing == 0 ) + return '' + else + return 'missing-many' + end + end end diff --git a/app/views/group_orders/_form.html.haml b/app/views/group_orders/_form.html.haml index fd3200bd..c5411790 100644 --- a/app/views/group_orders/_form.html.haml +++ b/app/views/group_orders/_form.html.haml @@ -88,7 +88,7 @@ %i.icon-tag %td{colspan: "9"} - order_articles.each do |order_article| - %tr{class: "#{cycle('even', 'odd', name: 'articles')} order-article", valign: "top"} + %tr{class: "#{cycle('even', 'odd', name: 'articles')} order-article #{get_missing_units_css_class(@ordering_data[:order_articles][order_article.id][:missing_units])}", valign: "top"} %td.name= order_article.article.name - if @order.stockit? %td= truncate order_article.article.supplier.name, length: 15