72b5a5ca82
Some foodcoops do not use the accounting feature of the foodsoft, which results in wrong calculation of the available credit. To avoid confusions show the current account balance instead.
180 lines
9.5 KiB
Text
180 lines
9.5 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
|
|
|
|
.row-fluid
|
|
.well.pull-left
|
|
= close_button :alert
|
|
%h2= @order.name
|
|
%dl.dl-horizontal
|
|
- unless @order.note.blank?
|
|
%dt= heading_helper Order, :note
|
|
%dd= @order.note
|
|
%dt= heading_helper Order, :created_by
|
|
%dd= show_user_link(@order.created_by)
|
|
%dt= heading_helper Order, :ends
|
|
%dd= format_time(@order.ends)
|
|
%dt= heading_helper Order, :pickup
|
|
%dd= format_date(@order.pickup)
|
|
- unless @order.stockit? or @order.supplier.min_order_quantity.blank?
|
|
%dt= heading_helper Supplier, :min_order_quantity, short: true
|
|
%dd= @order.supplier.min_order_quantity
|
|
%dt= t '.sum_amount'
|
|
%dd= number_to_currency @order.sum
|
|
- unless @group_order.new_record?
|
|
%dt= heading_helper GroupOrder, :updated_by
|
|
%dd
|
|
= show_user(@group_order.updated_by)
|
|
(#{format_time(@group_order.updated_on)})
|
|
%dt= heading_helper Ordergroup, :account_balance
|
|
%dd= number_to_currency(@ordering_data[:account_balance])
|
|
- unless FoodsoftConfig[:charge_members_manually]
|
|
%dt= heading_helper Ordergroup, :available_funds
|
|
%dd= number_to_currency(@ordering_data[:available_funds])
|
|
|
|
.well.pull-right
|
|
= close_button :alert
|
|
= render 'switch_order', current_order: @order
|
|
|
|
.row-fluid
|
|
.well.clear
|
|
.form-search
|
|
.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.table-hover
|
|
%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;"}= 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"}
|
|
%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= 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
|
|
%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-increase_quantity' => order_article.id}
|
|
%i.icon-plus
|
|
%a.btn.btn-ordering{'data-decrease_quantity' => order_article.id}
|
|
%i.icon-minus
|
|
|
|
%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-increase_tolerance' => order_article.id}
|
|
%i.icon-plus
|
|
%a.btn.btn-ordering{'data-decrease_tolerance' => order_article.id}
|
|
%i.icon-minus
|
|
|
|
%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
|
|
%table
|
|
%tr
|
|
%td= t('.total_sum_amount') + ':'
|
|
%td.currency
|
|
%span#total_price= number_to_currency(@group_order.price)
|
|
%tr
|
|
- if FoodsoftConfig[:charge_members_manually]
|
|
- old_balance = @ordering_data[:account_balance]
|
|
%td= heading_helper(Ordergroup, :account_balance) + ':'
|
|
%td.currency= number_to_currency(@ordering_data[:account_balance])
|
|
- else
|
|
- old_balance = @ordering_data[:available_funds]
|
|
%td= heading_helper(Ordergroup, :available_funds) + ':'
|
|
%td.currency= number_to_currency(@ordering_data[:available_funds])
|
|
%tr
|
|
%td= t('.new_funds') + ':'
|
|
%td.currency
|
|
%strong
|
|
%span#new_balance= number_to_currency(old_balance - @group_order.price)
|
|
#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}/
|