2012-10-15 21:19:17 +02:00
|
|
|
- content_for :javascript do
|
2017-10-10 18:20:54 +02:00
|
|
|
- group_balance = FoodsoftConfig[:charge_members_manually] ? @ordering_data[:account_balance] : @ordering_data[:available_funds]
|
2011-06-19 19:56:04 +02:00
|
|
|
:javascript
|
|
|
|
$(function() {
|
|
|
|
#{data_to_js(@ordering_data)}
|
2017-10-10 18:20:54 +02:00
|
|
|
setGroupBalance(#{group_balance});
|
2013-07-10 22:02:36 +02:00
|
|
|
setMinimumBalance(#{FoodsoftConfig[:minimum_balance] or 0});
|
2012-08-24 19:52:38 +02:00
|
|
|
setToleranceBehaviour(#{FoodsoftConfig[:tolerance_is_costly]});
|
2011-06-19 19:56:04 +02:00
|
|
|
setStockit(#{@order.stockit?});
|
2013-09-18 23:15:21 +02:00
|
|
|
// create List for search-feature (using list.js, http://listjs.com)
|
2013-10-04 18:28:45 +02:00
|
|
|
var listjsResetPlugin = ['reset', {highlightClass: 'btn-primary'}];
|
|
|
|
var listjsDelayPlugin = ['delay', {delayedSearchTime: 500}];
|
2013-11-05 10:54:35 +01:00
|
|
|
new List(document.body, {
|
2023-02-20 18:52:13 +01:00
|
|
|
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
|
2013-11-05 10:54:35 +01:00
|
|
|
});
|
2011-06-19 19:56:04 +02:00
|
|
|
});
|
2011-06-19 15:30:33 +02:00
|
|
|
|
2013-02-09 02:01:31 +01:00
|
|
|
- title t('.title'), false
|
2011-06-19 15:30:33 +02:00
|
|
|
|
2023-02-20 18:52:13 +01:00
|
|
|
.alert.alert-error#balance-alert{style: ('display:none')}
|
|
|
|
=t 'group_orders.errors.balance_alert'
|
2012-12-22 14:42:19 +01:00
|
|
|
.row-fluid
|
2023-02-20 18:52:13 +01:00
|
|
|
.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
|
2013-09-23 21:31:54 +02:00
|
|
|
.input-append
|
2013-10-04 18:28:45 +02:00
|
|
|
= text_field_tag :article, params[:article], placeholder: t('.search_article'), class: 'search-query delayed-search resettable'
|
2013-09-23 21:31:54 +02:00
|
|
|
%button.add-on.btn.reset-search{:type => :button, :title => t('.reset_article_search')}
|
|
|
|
%i.icon.icon-remove
|
2023-02-20 18:52:13 +01:00
|
|
|
= 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
|
2013-03-12 19:08:18 +01:00
|
|
|
- if @order.stockit?
|
2023-02-20 18:52:13 +01:00
|
|
|
%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]
|
2011-06-19 19:56:04 +02:00
|
|
|
|
2023-02-20 18:52:13 +01:00
|
|
|
%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
|
2011-06-19 19:56:04 +02:00
|
|
|
|
2023-02-20 18:52:13 +01:00
|
|
|
%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
|
2011-06-19 19:56:04 +02:00
|
|
|
|
2023-02-20 18:52:13 +01:00
|
|
|
%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}/
|