75bb400d0d
remove group order panel close buttons things shouldn't just disapear order article disabled button should be gray roup order swap plus and minus buttons because it's more naturally intuitive like this group order make order details collapse group order pull search to the right group order make 'current orders' more obvious fix switch menu rework group order edit form * make switch order a menu list * table more slim * alert when balance negative instead of making everything red * search to the right wip: rework group order details tried to reduce the amount of informations shown. but needs some user feedback, what information are actually relevant rework group order show view dashboard make show edit current order action more precise group order package indication uses more color-blind friendly color group order fix dancing quantity buttons group order switch menu use show view group order show window with some explanations group order edit title more clear grou order edit show less infos group order switch view next iteration grou order index narrower tables move order details to show again remove unused stuff
152 lines
8.8 KiB
Text
152 lines
8.8 KiB
Text
- content_for :javascript do
|
|
- group_balance = FoodsoftConfig[:charge_members_manually] ? @ordering_data[:account_balance] : @ordering_data[:available_funds]
|
|
:javascript
|
|
$(function() {
|
|
#{data_to_js(@ordering_data)}
|
|
setGroupBalance(#{group_balance});
|
|
setMinimumBalance(#{FoodsoftConfig[:minimum_balance] or 0});
|
|
setToleranceBehaviour(#{FoodsoftConfig[:tolerance_is_costly]});
|
|
setStockit(#{@order.stockit?});
|
|
// create List for search-feature (using list.js, http://listjs.com)
|
|
var listjsResetPlugin = ['reset', {highlightClass: 'btn-primary'}];
|
|
var listjsDelayPlugin = ['delay', {delayedSearchTime: 500}];
|
|
new List(document.body, {
|
|
valueNames: ['name'],
|
|
engine: 'unlist',
|
|
plugins: [listjsResetPlugin, listjsDelayPlugin],
|
|
// make large pages work too (as we don't have paging - articles may disappear!)
|
|
page: 10000,
|
|
indexAsync: true
|
|
});
|
|
});
|
|
|
|
- title t('.title'), false
|
|
|
|
.alert.alert-error#balance-alert{style: ('display:none')}
|
|
=t 'group_orders.errors.balance_alert'
|
|
.row-fluid
|
|
.span2
|
|
.well
|
|
= render 'switch_order', current_order: @order
|
|
.well
|
|
= render 'explanations'
|
|
.well.span9
|
|
%h2.span9= t '.sub_title', order_name: @order.name
|
|
.span3
|
|
%table.table-condensed
|
|
-if @order.ends
|
|
%tr
|
|
%td= heading_helper(Order, :ends) + ': '
|
|
%td= format_time(@order.ends)
|
|
- unless @order.stockit? or @order.supplier.min_order_quantity.blank?
|
|
%tr
|
|
%td= heading_helper(Supplier, :min_order_quantity)
|
|
%td= number_to_currency(@order.supplier.min_order_quantity)
|
|
%tr
|
|
%td= t('group_orders.form.sum_amount') + ':'
|
|
%td= number_to_currency(@order.sum)
|
|
%hr
|
|
.form-search.pull-right
|
|
.input-append
|
|
= text_field_tag :article, params[:article], placeholder: t('.search_article'), class: 'search-query delayed-search resettable'
|
|
%button.add-on.btn.reset-search{:type => :button, :title => t('.reset_article_search')}
|
|
%i.icon.icon-remove
|
|
= form_for @group_order do |f|
|
|
= f.hidden_field :lock_version
|
|
= f.hidden_field :order_id
|
|
= f.hidden_field :updated_by_user_id
|
|
= f.hidden_field :ordergroup_id
|
|
%table.table
|
|
%thead
|
|
%tr
|
|
%th= heading_helper Article, :name
|
|
- if @order.stockit?
|
|
%th{style: 'width:120px'}= heading_helper StockArticle, :supplier
|
|
%th{style: "width:13px;"}
|
|
%th{style: "width:4.5em;"}= t '.price'
|
|
%th{style: "width:4.5em;"}= t '.price_per_base_unit'
|
|
%th{style: "width:4.5em;"}= heading_helper Article, :unit
|
|
- unless @order.stockit?
|
|
%th{style: "width:70px;"}= heading_helper OrderArticle, :missing_units, short: true
|
|
%th#col_required= heading_helper GroupOrderArticle, :quantity
|
|
%th#col_tolerance= heading_helper GroupOrderArticle, :tolerance
|
|
- else
|
|
%th(style="width:20px")= heading_helper StockArticle, :available
|
|
%th#col_required= heading_helper GroupOrderArticle, :quantity
|
|
%th{style: "width:15px;"}= heading_helper GroupOrderArticle, :total_price
|
|
%tbody.list
|
|
- @order.articles_grouped_by_category.each do | category, order_articles|
|
|
%tr.list-heading.article-category
|
|
%td
|
|
= category
|
|
%i.icon-tag
|
|
%td{colspan: "9"}
|
|
- order_articles.each do |order_article|
|
|
%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", tabindex: "0"}
|
|
%td.name= order_article.article.name
|
|
- if @order.stockit?
|
|
%td= truncate order_article.article.supplier.name, length: 15
|
|
%td= h order_article.article.origin
|
|
%td= number_to_currency(@ordering_data[:order_articles][order_article.id][:price])
|
|
%td= price_per_base_unit(article: order_article.article, price: @ordering_data[:order_articles][order_article.id][:price])
|
|
%td= order_article.article.unit
|
|
%td
|
|
- if @order.stockit?
|
|
= @ordering_data[:order_articles][order_article.id][:quantity_available]
|
|
- else
|
|
%span{id: "missing_units_#{order_article.id}"}= @ordering_data[:order_articles][order_article.id][:missing_units]
|
|
|
|
%td.quantity
|
|
.outer{style: "diyplay: inline-block; float: left; width: 50px;"}
|
|
%input{id: "q_#{order_article.id}", name: "group_order[group_order_articles_attributes][#{order_article.id}][quantity]", type: "hidden", value: @ordering_data[:order_articles][order_article.id][:quantity], 'data-min' => (@ordering_data[:order_articles][order_article.id][:quantity] if @order.boxfill?), 'data-max' => (@ordering_data[:order_articles][order_article.id][:quantity]+@ordering_data[:order_articles][order_article.id][:missing_units] if @order.boxfill?)}/
|
|
%span.used{id: "q_used_#{order_article.id}"}= @ordering_data[:order_articles][order_article.id][:used_quantity]
|
|
+
|
|
%span.unused{id: "q_unused_#{order_article.id}"}= @ordering_data[:order_articles][order_article.id][:quantity] - @ordering_data[:order_articles][order_article.id][:used_quantity]
|
|
.btn-group
|
|
%a.btn.btn-ordering{'data-decrease_quantity' => order_article.id}
|
|
%i.icon-minus
|
|
%a.btn.btn-ordering{'data-increase_quantity' => order_article.id}
|
|
%i.icon-plus
|
|
|
|
%td.tolerance{style: ('display:none' if @order.stockit?)}
|
|
%input{id: "t_#{order_article.id}", name: "group_order[group_order_articles_attributes][#{order_article.id}][tolerance]", type: "hidden", value: @ordering_data[:order_articles][order_article.id][:tolerance], 'data-min' => (@ordering_data[:order_articles][order_article.id][:tolerance] if @order.boxfill?)}/
|
|
- if (@ordering_data[:order_articles][order_article.id][:unit] > 1)
|
|
%span.used{id: "t_used_#{order_article.id}"}= @ordering_data[:order_articles][order_article.id][:used_tolerance]
|
|
+
|
|
%span.unused{id: "t_unused_#{order_article.id}"}= @ordering_data[:order_articles][order_article.id][:tolerance] - @ordering_data[:order_articles][order_article.id][:used_tolerance]
|
|
.btn-group
|
|
%a.btn.btn-ordering{'data-decrease_tolerance' => order_article.id}
|
|
%i.icon-minus
|
|
%a.btn.btn-ordering{'data-increase_tolerance' => order_article.id}
|
|
%i.icon-plus
|
|
|
|
%td{id: "td_price_#{order_article.id}", style: "text-align:right; padding-right:10px; width:4em"}
|
|
%span{id: "price_#{order_article.id}_display"}= number_to_currency(@ordering_data[:order_articles][order_article.id][:total_price])
|
|
.article-info
|
|
.article-name= order_article.article.name
|
|
.pull-right
|
|
= t('.units_full') + ':'
|
|
%span{id: "units_#{order_article.id}"}= order_article.units_to_order
|
|
%br/
|
|
= t('.units_total') + ':'
|
|
%span{id: "q_total_#{order_article.id}"}= @ordering_data[:order_articles][order_article.id][:quantity] + @ordering_data[:order_articles][order_article.id][:others_quantity]
|
|
%br/
|
|
= t('.total_tolerance') + ':'
|
|
%span{id: "t_total_#{order_article.id}"}= @ordering_data[:order_articles][order_article.id][:tolerance] + @ordering_data[:order_articles][order_article.id][:others_tolerance]
|
|
%br/
|
|
.pull-left
|
|
#{heading_helper Article, :manufacturer}: #{order_article.article.manufacturer}
|
|
%br/
|
|
#{heading_helper Article, :units}: #{@order.stockit? ? order_article.article.quantity_available : @ordering_data[:order_articles][order_article.id][:unit]} * #{h order_article.article.unit}
|
|
%br/
|
|
#{heading_helper Article, :note}: #{order_article.article.note}
|
|
%br/
|
|
#order-footer
|
|
#info-box
|
|
#total-sum
|
|
= render 'total_sum'
|
|
#order-button
|
|
= submit_tag( t('.action_save'), id: 'submit_button', class: 'btn btn-primary' )
|
|
#{link_to t('ui.or_cancel'), group_orders_path}
|
|
%input#total_balance{name: "total_balance", type: "hidden", value: @ordergroup.account_balance - @group_order.price}/
|
|
%input{name: "version", type: "hidden", value: @version}/
|