2d0c163f13
see https://github.com/foodcoops/foodsoft/pull/907 for reference and original work by viehlieb Co-authored-by: viehlieb <pf@pragma-shift.net> fix PDF Pdf make explicit deposit in invoices work add ordergroupname to invoice file name mark bold sum for vat exempt foodcoops download multiple group order invoice as zip
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
|
|
%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", 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= 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}/
|