feat: improve usability of group order
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
This commit is contained in:
parent
6f2a3b4f5f
commit
75bb400d0d
13 changed files with 353 additions and 292 deletions
|
@ -179,17 +179,13 @@ function updateBalance() {
|
||||||
var balance = groupBalance - total;
|
var balance = groupBalance - total;
|
||||||
$('#new_balance').html(I18n.l("currency", balance));
|
$('#new_balance').html(I18n.l("currency", balance));
|
||||||
$('#total_balance').val(I18n.l("currency", balance));
|
$('#total_balance').val(I18n.l("currency", balance));
|
||||||
// determine bgcolor and submit button state according to balance
|
|
||||||
var bgcolor = '';
|
|
||||||
if (balance < minimumBalance) {
|
if (balance < minimumBalance) {
|
||||||
bgcolor = '#FF0000';
|
|
||||||
$('#submit_button').attr('disabled', 'disabled')
|
$('#submit_button').attr('disabled', 'disabled')
|
||||||
|
$('#balance-alert').css('display', 'block')
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$('#submit_button').removeAttr('disabled')
|
$('#submit_button').removeAttr('disabled')
|
||||||
}
|
$('#balance-alert').css('display', 'none')
|
||||||
// update bgcolor
|
|
||||||
for (i in itemTotal) {
|
|
||||||
$('#td_price_' + i).css('background-color', bgcolor);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -230,7 +230,7 @@ table {
|
||||||
margin: .5em 0;
|
margin: .5em 0;
|
||||||
|
|
||||||
input:disabled {
|
input:disabled {
|
||||||
background-color: red; }
|
background-color: gray; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -278,13 +278,14 @@ tr.order-article .article-info {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr.order-article:focus{
|
|
||||||
background-color: #E4EED6;
|
|
||||||
}
|
|
||||||
tr.order-article:focus .article-info {
|
tr.order-article:focus .article-info {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tr.order-article:focus {
|
||||||
|
background-color: #E9E9E9;
|
||||||
|
}
|
||||||
|
|
||||||
// ********* Articles
|
// ********* Articles
|
||||||
|
|
||||||
tr.just-updated {
|
tr.just-updated {
|
||||||
|
|
|
@ -1,11 +1,23 @@
|
||||||
.list .missing-many td, .list .missing-many:hover td {
|
.missing-many td {
|
||||||
background-color: #ebbebe;
|
background-color: #ffc590aa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list .missing-few td, .list .missing-few:hover td {
|
.missing-many:hover td, .missing-many:focus td {
|
||||||
background-color: #ffee75;
|
background-color: #ffc590;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list .missing-none td, .list .missing-none:hover td {
|
.missing-few td {
|
||||||
background-color: #E4EED6;
|
background-color: #fcf488aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.missing-few:hover td, .missing-few:focus td {
|
||||||
|
background-color: #fcf488;
|
||||||
|
}
|
||||||
|
|
||||||
|
.missing-none td {
|
||||||
|
background-color: #d0f6ffaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.missing-none:hover td, .missing-none:focus td {
|
||||||
|
background-color: #d0f6ff;
|
||||||
}
|
}
|
||||||
|
|
15
app/views/group_orders/_explanations.haml
Normal file
15
app/views/group_orders/_explanations.haml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
%h4= t '.title'
|
||||||
|
%hr
|
||||||
|
%table.table-condensed
|
||||||
|
%thead
|
||||||
|
%th= t '.package_fill_level'
|
||||||
|
%tbody
|
||||||
|
%tr{class: "missing-none"}
|
||||||
|
%td= t '.missing_none'
|
||||||
|
%tr{class: "missing-few"}
|
||||||
|
%td= t '.missing_few'
|
||||||
|
%tr{class: "missing-many"}
|
||||||
|
%td= t '.missing_many'
|
||||||
|
%hr
|
||||||
|
%b= t('.tolerance') + ':'
|
||||||
|
= t '.tolerance_explained'
|
|
@ -11,170 +11,142 @@
|
||||||
var listjsResetPlugin = ['reset', {highlightClass: 'btn-primary'}];
|
var listjsResetPlugin = ['reset', {highlightClass: 'btn-primary'}];
|
||||||
var listjsDelayPlugin = ['delay', {delayedSearchTime: 500}];
|
var listjsDelayPlugin = ['delay', {delayedSearchTime: 500}];
|
||||||
new List(document.body, {
|
new List(document.body, {
|
||||||
valueNames: ['name'],
|
valueNames: ['name'],
|
||||||
engine: 'unlist',
|
engine: 'unlist',
|
||||||
plugins: [listjsResetPlugin, listjsDelayPlugin],
|
plugins: [listjsResetPlugin, listjsDelayPlugin],
|
||||||
// make large pages work too (as we don't have paging - articles may disappear!)
|
// make large pages work too (as we don't have paging - articles may disappear!)
|
||||||
page: 10000,
|
page: 10000,
|
||||||
indexAsync: true
|
indexAsync: true
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
- title t('.title'), false
|
- title t('.title'), false
|
||||||
|
|
||||||
|
.alert.alert-error#balance-alert{style: ('display:none')}
|
||||||
|
=t 'group_orders.errors.balance_alert'
|
||||||
.row-fluid
|
.row-fluid
|
||||||
.well.pull-left
|
.span2
|
||||||
= close_button :alert
|
.well
|
||||||
%h2= @order.name
|
= render 'switch_order', current_order: @order
|
||||||
%dl.dl-horizontal
|
.well
|
||||||
- unless @order.note.blank?
|
= render 'explanations'
|
||||||
%dt= heading_helper Order, :note
|
.well.span9
|
||||||
%dd= @order.note
|
%h2.span9= t '.sub_title', order_name: @order.name
|
||||||
%dt= heading_helper Order, :created_by
|
.span3
|
||||||
%dd= show_user_link(@order.created_by)
|
%table.table-condensed
|
||||||
%dt= heading_helper Order, :ends
|
-if @order.ends
|
||||||
%dd= format_time(@order.ends)
|
%tr
|
||||||
%dt= heading_helper Order, :pickup
|
%td= heading_helper(Order, :ends) + ': '
|
||||||
%dd= format_date(@order.pickup)
|
%td= format_time(@order.ends)
|
||||||
- unless @order.stockit? or @order.supplier.min_order_quantity.blank?
|
- unless @order.stockit? or @order.supplier.min_order_quantity.blank?
|
||||||
%dt= heading_helper Supplier, :min_order_quantity, short: true
|
%tr
|
||||||
%dd= @order.supplier.min_order_quantity
|
%td= heading_helper(Supplier, :min_order_quantity)
|
||||||
%dt= t '.sum_amount'
|
%td= number_to_currency(@order.supplier.min_order_quantity)
|
||||||
%dd= number_to_currency @order.sum
|
%tr
|
||||||
- unless @group_order.new_record?
|
%td= t('group_orders.form.sum_amount') + ':'
|
||||||
%dt= heading_helper GroupOrder, :updated_by
|
%td= number_to_currency(@order.sum)
|
||||||
%dd
|
%hr
|
||||||
= show_user(@group_order.updated_by)
|
.form-search.pull-right
|
||||||
(#{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
|
.input-append
|
||||||
= text_field_tag :article, params[:article], placeholder: t('.search_article'), class: 'search-query delayed-search resettable'
|
= 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')}
|
%button.add-on.btn.reset-search{:type => :button, :title => t('.reset_article_search')}
|
||||||
%i.icon.icon-remove
|
%i.icon.icon-remove
|
||||||
|
= form_for @group_order do |f|
|
||||||
= form_for @group_order do |f|
|
= f.hidden_field :lock_version
|
||||||
= f.hidden_field :lock_version
|
= f.hidden_field :order_id
|
||||||
= f.hidden_field :order_id
|
= f.hidden_field :updated_by_user_id
|
||||||
= f.hidden_field :updated_by_user_id
|
= f.hidden_field :ordergroup_id
|
||||||
= f.hidden_field :ordergroup_id
|
%table.table
|
||||||
%table.table
|
%thead
|
||||||
%thead
|
%tr
|
||||||
%tr
|
%th= heading_helper Article, :name
|
||||||
%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?
|
- if @order.stockit?
|
||||||
%td= truncate order_article.article.supplier.name, length: 15
|
%th{style: 'width:120px'}= heading_helper StockArticle, :supplier
|
||||||
%td= h order_article.article.origin
|
%th{style: "width:13px;"}
|
||||||
%td= number_to_currency(@ordering_data[:order_articles][order_article.id][:price])
|
%th{style: "width:4.5em;"}= t '.price'
|
||||||
%td= order_article.article.unit
|
%th{style: "width:4.5em;"}= t '.price_per_base_unit'
|
||||||
%td
|
%th{style: "width:4.5em;"}= heading_helper Article, :unit
|
||||||
- if @order.stockit?
|
- unless @order.stockit?
|
||||||
= @ordering_data[:order_articles][order_article.id][:quantity_available]
|
%th{style: "width:70px;"}= heading_helper OrderArticle, :missing_units, short: true
|
||||||
- else
|
%th#col_required= heading_helper GroupOrderArticle, :quantity
|
||||||
%span{id: "missing_units_#{order_article.id}"}= @ordering_data[:order_articles][order_article.id][:missing_units]
|
%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
|
%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?)}/
|
.outer{style: "diyplay: inline-block; float: left; width: 50px;"}
|
||||||
%span.used{id: "q_used_#{order_article.id}"}= @ordering_data[:order_articles][order_article.id][:used_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
|
%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]
|
||||||
%a.btn.btn-ordering{'data-increase_quantity' => order_article.id}
|
.btn-group
|
||||||
%i.icon-plus
|
%a.btn.btn-ordering{'data-decrease_quantity' => order_article.id}
|
||||||
%a.btn.btn-ordering{'data-decrease_quantity' => order_article.id}
|
%i.icon-minus
|
||||||
%i.icon-minus
|
%a.btn.btn-ordering{'data-increase_quantity' => order_article.id}
|
||||||
|
%i.icon-plus
|
||||||
|
|
||||||
%td.tolerance{style: ('display:none' if @order.stockit?)}
|
%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?)}/
|
%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)
|
- 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.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]
|
%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
|
.btn-group
|
||||||
%a.btn.btn-ordering{'data-increase_tolerance' => order_article.id}
|
%a.btn.btn-ordering{'data-decrease_tolerance' => order_article.id}
|
||||||
%i.icon-plus
|
%i.icon-minus
|
||||||
%a.btn.btn-ordering{'data-decrease_tolerance' => order_article.id}
|
%a.btn.btn-ordering{'data-increase_tolerance' => order_article.id}
|
||||||
%i.icon-minus
|
%i.icon-plus
|
||||||
|
|
||||||
%td{id: "td_price_#{order_article.id}", style: "text-align:right; padding-right:10px; width:4em"}
|
%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])
|
%span{id: "price_#{order_article.id}_display"}= number_to_currency(@ordering_data[:order_articles][order_article.id][:total_price])
|
||||||
.article-info
|
.article-info
|
||||||
.article-name= order_article.article.name
|
.article-name= order_article.article.name
|
||||||
.pull-right
|
.pull-right
|
||||||
= t('.units_full') + ':'
|
= t('.units_full') + ':'
|
||||||
%span{id: "units_#{order_article.id}"}= order_article.units_to_order
|
%span{id: "units_#{order_article.id}"}= order_article.units_to_order
|
||||||
%br/
|
%br/
|
||||||
= t('.units_total') + ':'
|
= 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]
|
%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/
|
%br/
|
||||||
= t('.total_tolerance') + ':'
|
= 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]
|
%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/
|
%br/
|
||||||
.pull-left
|
.pull-left
|
||||||
#{heading_helper Article, :manufacturer}: #{order_article.article.manufacturer}
|
#{heading_helper Article, :manufacturer}: #{order_article.article.manufacturer}
|
||||||
%br/
|
%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}
|
#{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/
|
%br/
|
||||||
#{heading_helper Article, :note}: #{order_article.article.note}
|
#{heading_helper Article, :note}: #{order_article.article.note}
|
||||||
%br/
|
%br/
|
||||||
#order-footer
|
#order-footer
|
||||||
#info-box
|
#info-box
|
||||||
#total-sum
|
#total-sum
|
||||||
%table
|
= render 'total_sum'
|
||||||
%tr
|
#order-button
|
||||||
%td= t('.total_sum_amount') + ':'
|
= submit_tag( t('.action_save'), id: 'submit_button', class: 'btn btn-primary' )
|
||||||
%td.currency
|
#{link_to t('ui.or_cancel'), group_orders_path}
|
||||||
%span#total_price= number_to_currency(@group_order.price)
|
%input#total_balance{name: "total_balance", type: "hidden", value: @ordergroup.account_balance - @group_order.price}/
|
||||||
%tr
|
%input{name: "version", type: "hidden", value: @version}/
|
||||||
- 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}/
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
- orders = Order.open.started.reject{ |order| order == current_order }
|
- orders = Order.open.started
|
||||||
- unless orders.empty?
|
- unless orders.empty?
|
||||||
%h2= t '.title'
|
%ul.nav.nav-pills.nav-stacked
|
||||||
%ul.unstyled
|
.nav-header= t '.title'
|
||||||
|
%li= link_to t('ui.overview'), :group_orders
|
||||||
- orders.each do |order|
|
- orders.each do |order|
|
||||||
%li
|
.btn-small.pull-right
|
||||||
= link_to_ordering(order, 'data-confirm_switch_order' => true)
|
=link_to_ordering(order, style: (order == current_order ? 'color: white' : '' ), 'data-confirm_switch_order' => true){ t 'ui.edit' }
|
||||||
- if order.ends
|
%li( class="#{ order == current_order ? 'active' : ''}")
|
||||||
= t '.remaining', remaining: time_ago_in_words(order.ends)
|
=link_to_ordering(order, show: true, 'data-confirm_switch_order' => true)
|
19
app/views/group_orders/_total_sum.haml
Normal file
19
app/views/group_orders/_total_sum.haml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
%table
|
||||||
|
%tr
|
||||||
|
%td= t('group_orders.form.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('group_orders.form.new_funds') + ':'
|
||||||
|
%td.currency
|
||||||
|
%strong
|
||||||
|
%span#new_balance= number_to_currency(old_balance - @group_order.price)
|
|
@ -18,22 +18,27 @@
|
||||||
%th= heading_helper Ordergroup, :available_funds
|
%th= heading_helper Ordergroup, :available_funds
|
||||||
%th.numeric= number_to_currency(@ordergroup.get_available_funds)
|
%th.numeric= number_to_currency(@ordergroup.get_available_funds)
|
||||||
|
|
||||||
= render :partial => "shared/open_orders", :locals => {:ordergroup => @ordergroup}
|
.row-fluid
|
||||||
|
.span9
|
||||||
// finished orders
|
= render :partial => "shared/open_orders", :locals => {:ordergroup => @ordergroup}
|
||||||
|
// finished orders
|
||||||
- unless @finished_not_closed_orders_including_group_order.empty?
|
- unless @finished_not_closed_orders_including_group_order.empty?
|
||||||
%section
|
.row-fluid
|
||||||
%h2= t '.finished_orders.title'
|
.span9
|
||||||
= render partial: 'orders', locals: {orders: @finished_not_closed_orders_including_group_order, pagination: false}
|
%section
|
||||||
- if @ordergroup.value_of_finished_orders > 0
|
%h2= t '.finished_orders.title'
|
||||||
%p
|
= render partial: 'orders', locals: {orders: @finished_not_closed_orders_including_group_order, pagination: false}
|
||||||
= t('.finished_orders.total_sum') + ':'
|
- if @ordergroup.value_of_finished_orders > 0
|
||||||
%b= number_to_currency(@ordergroup.value_of_finished_orders)
|
%p
|
||||||
|
= t('.finished_orders.total_sum') + ':'
|
||||||
|
%b= number_to_currency(@ordergroup.value_of_finished_orders)
|
||||||
|
|
||||||
// closed orders
|
// closed orders
|
||||||
- unless @closed_orders_including_group_order.empty?
|
- unless @closed_orders_including_group_order.empty?
|
||||||
%section
|
.row-fluid
|
||||||
%h2= t '.closed_orders.title'
|
.span9
|
||||||
= render partial: 'orders', locals: {orders: @closed_orders_including_group_order, pagination: false}
|
%section
|
||||||
%br/
|
%h2= t '.closed_orders.title'
|
||||||
= link_to t('.closed_orders.more'), archive_group_orders_path
|
= render partial: 'orders', locals: {orders: @closed_orders_including_group_order, pagination: false}
|
||||||
|
%br/
|
||||||
|
= link_to t('.closed_orders.more'), archive_group_orders_path
|
||||||
|
|
|
@ -7,107 +7,115 @@
|
||||||
- title t('.title', order: @order.name)
|
- title t('.title', order: @order.name)
|
||||||
|
|
||||||
.row-fluid
|
.row-fluid
|
||||||
.well.pull-left
|
|
||||||
// Order summary
|
.well.span2
|
||||||
|
= render 'switch_order', current_order: @order
|
||||||
|
.well.span9
|
||||||
|
%h2= t '.articles.title'
|
||||||
%dl.dl-horizontal
|
%dl.dl-horizontal
|
||||||
|
// Name
|
||||||
%dt= heading_helper Order, :name
|
%dt= heading_helper Order, :name
|
||||||
%dd= @order.name
|
%dd= @order.name
|
||||||
%dt= heading_helper Order, :note
|
// Order Ends
|
||||||
%dd= @order.note
|
|
||||||
%dt= heading_helper Order, :ends
|
%dt= heading_helper Order, :ends
|
||||||
%dd= format_time(@order.ends)
|
%dd= format_time(@order.ends)
|
||||||
%dt= heading_helper Order, :pickup
|
// Pickup
|
||||||
%dd= format_date(@order.pickup)
|
- unless @order.pickup.blank?
|
||||||
%dt= heading_helper GroupOrder, :price
|
%dt= heading_helper Order, :pickup
|
||||||
%dd
|
%dd= format_date(@order.pickup)
|
||||||
- if @group_order
|
// Min Order Quantity
|
||||||
= number_to_currency(@group_order.price)
|
- unless @order.stockit? or @order.supplier.min_order_quantity.blank?
|
||||||
- else
|
%dt= heading_helper Supplier, :min_order_quantity, short: true
|
||||||
= t '.not_ordered'
|
%dd= @order.supplier.min_order_quantity
|
||||||
- if @group_order && @group_order.transport
|
// Group Order Sum Amount
|
||||||
%dt= heading_helper GroupOrder, :transport
|
%dt= t 'group_orders.form.sum_amount'
|
||||||
%dd= number_to_currency(@group_order.transport)
|
%dd= number_to_currency @order.sum
|
||||||
%dt= heading_helper GroupOrder, :total
|
// Created By
|
||||||
%dd= number_to_currency(@group_order.total)
|
%dt= heading_helper Order, :created_by
|
||||||
|
%dd= show_user_link(@order.created_by)
|
||||||
|
// Updated By
|
||||||
|
- unless @group_order.new_record?
|
||||||
|
%dt= heading_helper GroupOrder, :updated_by
|
||||||
|
%dd
|
||||||
|
= show_user(@group_order.updated_by)
|
||||||
|
(#{format_time(@group_order.updated_on)})
|
||||||
|
// Closed By
|
||||||
- if @order.closed?
|
- if @order.closed?
|
||||||
%dt= heading_helper Order, :closed_by
|
%dt= heading_helper Order, :closed_by
|
||||||
%dd= show_user_link @order.updated_by
|
%dd= show_user_link @order.updated_by
|
||||||
%p= link_to t('.comment'), "#comments"
|
// Note
|
||||||
|
- unless @order.note.blank?
|
||||||
|
%dt= heading_helper Order, :note
|
||||||
|
%dd= @order.note
|
||||||
|
|
||||||
.well.pull-right
|
// Article box
|
||||||
= close_button :alert
|
%section
|
||||||
= render 'switch_order', current_order: @order
|
.column_content#result
|
||||||
|
- if @group_order
|
||||||
// Article box
|
%p= link_to t('.articles.show_hide'), '#', 'data-toggle-this' => 'tr.ignored'
|
||||||
%section
|
%table.table.table-hover
|
||||||
%h2= t '.articles.title'
|
%thead
|
||||||
.column_content#result
|
%tr
|
||||||
- if @group_order
|
%th{style: "width:40%"}= heading_helper Article, :name
|
||||||
%p.pull-right= link_to t('.articles.show_hide'), '#', 'data-toggle-this' => 'tr.ignored'
|
%th= heading_helper Article, :units
|
||||||
%p= link_to(t('.articles.edit_order'), edit_group_order_path(@group_order, order_id: @order.id), class: 'btn btn-primary') if @order.open?
|
%th= t '.articles.unit_price'
|
||||||
%table.table.table-hover
|
%th
|
||||||
%thead
|
%abbr{title: t('.articles.ordered_title')}= t '.articles.ordered'
|
||||||
%tr
|
%th
|
||||||
%th{style: "width:40%"}= heading_helper Article, :name
|
%abbr{title: t('.articles.order_nopen_title')}
|
||||||
%th= heading_helper Article, :units
|
- if @order.open?
|
||||||
%th= t '.articles.unit_price'
|
= t '.articles.order_open'
|
||||||
%th
|
- else
|
||||||
%abbr{title: t('.articles.ordered_title')}= t '.articles.ordered'
|
= t '.articles.order_not_open'
|
||||||
%th
|
%th= heading_helper GroupOrderArticle, :total_price
|
||||||
%abbr{title: t('.articles.order_nopen_title')}
|
%tbody
|
||||||
- if @order.open?
|
- for category_name, order_articles in @order.articles_grouped_by_category
|
||||||
= t '.articles.order_open'
|
%tr.article-category
|
||||||
- else
|
%td
|
||||||
= t '.articles.order_not_open'
|
= category_name
|
||||||
%th= heading_helper GroupOrderArticle, :total_price
|
%i.icon-tag
|
||||||
%tbody
|
%td{colspan: "9"}
|
||||||
- for category_name, order_articles in @order.articles_grouped_by_category
|
- order_articles.each do |oa|
|
||||||
%tr.article-category
|
- # get the order-results for the ordergroup
|
||||||
%td
|
- r = get_order_results(oa, @group_order.id)
|
||||||
= category_name
|
%tr{class: cycle('even', 'odd', name: 'articles') + " " + order_article_class_name(r[:quantity], r[:tolerance], r[:result])}
|
||||||
%i.icon-tag
|
%td{style: "width:40%"}
|
||||||
%td{colspan: "9"}
|
= oa.article.name
|
||||||
- order_articles.each do |oa|
|
- unless oa.article.note.blank?
|
||||||
- # get the order-results for the ordergroup
|
= image_tag("lamp_grey.png", {alt: t('.articles.show_note'), size: "15x16", border: "0", onmouseover: "$('#note_#{oa.id}').show();", onmouseout: "$('#note_#{oa.id}').hide();"})
|
||||||
- r = get_order_results(oa, @group_order.id)
|
%td= "#{oa.price.unit_quantity} x #{oa.article.unit}"
|
||||||
%tr{class: cycle('even', 'odd', name: 'articles') + " " + order_article_class_name(r[:quantity], r[:tolerance], r[:result])}
|
%td= number_to_currency(oa.price.fc_price)
|
||||||
%td{style: "width:40%"}
|
%td
|
||||||
= oa.article.name
|
= r[:quantity]
|
||||||
|
= "+ #{r[:tolerance]}" if oa.price.unit_quantity > 1
|
||||||
|
%td= r[:result] > 0 ? r[:result] : "0"
|
||||||
|
%td= number_to_currency(r[:sub_total])
|
||||||
- unless oa.article.note.blank?
|
- unless oa.article.note.blank?
|
||||||
= image_tag("lamp_grey.png", {alt: t('.articles.show_note'), size: "15x16", border: "0", onmouseover: "$('#note_#{oa.id}').show();", onmouseout: "$('#note_#{oa.id}').hide();"})
|
%tr{id: "note_#{oa.id}", class: "note even", style: "display:none"}
|
||||||
%td= "#{oa.price.unit_quantity} x #{oa.article.unit}"
|
%td{colspan: "6"}=h oa.article.note
|
||||||
%td= number_to_currency(oa.price.fc_price)
|
%tr{class: cycle('even', 'odd', name: 'articles')}
|
||||||
%td
|
%th{colspan: "5"}= heading_helper GroupOrder, :price
|
||||||
= r[:quantity]
|
%th= number_to_currency(@group_order.price)
|
||||||
= "+ #{r[:tolerance]}" if oa.price.unit_quantity > 1
|
- if @group_order.transport
|
||||||
%td= r[:result] > 0 ? r[:result] : "0"
|
%tr{class: cycle('even', 'odd', name: 'articles')}
|
||||||
%td= number_to_currency(r[:sub_total])
|
%td{colspan: "5"}= heading_helper GroupOrder, :transport
|
||||||
- unless oa.article.note.blank?
|
%td= number_to_currency(@group_order.transport)
|
||||||
%tr{id: "note_#{oa.id}", class: "note even", style: "display:none"}
|
%tr{class: cycle('even', 'odd', name: 'articles')}
|
||||||
%td{colspan: "6"}=h oa.article.note
|
%th{colspan: "5"}= heading_helper GroupOrder, :total
|
||||||
%tr{class: cycle('even', 'odd', name: 'articles')}
|
%th= number_to_currency(@group_order.total)
|
||||||
%th{colspan: "5"}= heading_helper GroupOrder, :price
|
%br/
|
||||||
%th= number_to_currency(@group_order.price)
|
= link_to_top
|
||||||
- if @group_order.transport
|
%p.pull-right= link_to(t('.articles.edit_order'), edit_group_order_path(@group_order, order_id: @order.id), class: 'btn btn-primary') if @order.open?
|
||||||
%tr{class: cycle('even', 'odd', name: 'articles')}
|
- else
|
||||||
%td{colspan: "5"}= heading_helper GroupOrder, :transport
|
- if @order.open?
|
||||||
%td= number_to_currency(@group_order.transport)
|
= t '.articles.not_ordered_msg'
|
||||||
%tr{class: cycle('even', 'odd', name: 'articles')}
|
= link_to t('.articles.order_now'), action: "order", id: @order
|
||||||
%th{colspan: "5"}= heading_helper GroupOrder, :total
|
- else
|
||||||
%th= number_to_currency(@group_order.total)
|
= t '.articles.order_closed_msg'
|
||||||
%br/
|
|
||||||
= link_to_top
|
|
||||||
- else
|
|
||||||
- if @order.open?
|
|
||||||
= t '.articles.not_ordered_msg'
|
|
||||||
= link_to t('.articles.order_now'), action: "order", id: @order
|
|
||||||
- else
|
|
||||||
= t '.articles.order_closed_msg'
|
|
||||||
|
|
||||||
// Comments box
|
// Comments box
|
||||||
%section
|
%hr
|
||||||
%h2= t '.comments.title'
|
%h2= t '.comments.title'
|
||||||
#comments
|
#comments
|
||||||
= render 'shared/comments', comments: @order.comments
|
= render 'shared/comments', comments: @order.comments
|
||||||
#new_comment= render 'order_comments/form', order_comment: @order.comments.build(user: current_user)
|
#new_comment= render 'order_comments/form', order_comment: @order.comments.build(user: current_user)
|
||||||
= link_to_top
|
= link_to_top
|
|
@ -9,6 +9,7 @@
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
%th= heading_helper Order, :name
|
%th= heading_helper Order, :name
|
||||||
|
%th
|
||||||
%th= heading_helper Order, :pickup
|
%th= heading_helper Order, :pickup
|
||||||
%th= heading_helper Order, :ends
|
%th= heading_helper Order, :ends
|
||||||
%th= t '.who_ordered'
|
%th= t '.who_ordered'
|
||||||
|
@ -17,21 +18,23 @@
|
||||||
- total = 0
|
- total = 0
|
||||||
- orders.each do |order|
|
- orders.each do |order|
|
||||||
%tr
|
%tr
|
||||||
%td= link_to_ordering(order)
|
%td
|
||||||
|
= link_to_ordering(order, show: true)
|
||||||
|
%td
|
||||||
|
.btn-small= link_to_ordering(order){ t 'ui.edit' }
|
||||||
%td= format_date(order.pickup) unless order.pickup.nil?
|
%td= format_date(order.pickup) unless order.pickup.nil?
|
||||||
%td= format_time(order.ends) unless order.ends.nil?
|
%td= format_time(order.ends) unless order.ends.nil?
|
||||||
- if group_order = order.group_order(ordergroup)
|
- if group_order = order.group_order(ordergroup)
|
||||||
- total += group_order.price
|
- total += group_order.price
|
||||||
%td= "#{show_user group_order.updated_by} (#{format_time(group_order.updated_on)})"
|
%td= "#{show_user group_order.updated_by} (#{format_time(group_order.updated_on)})"
|
||||||
%td.numeric
|
%td.numeric
|
||||||
= link_to_ordering(order, show: true) do
|
= number_to_currency(group_order.price)
|
||||||
= number_to_currency(group_order.price)
|
|
||||||
- else
|
- else
|
||||||
%td{:colspan => 2}
|
%td{:colspan => 2}
|
||||||
- if total > 0
|
- if total > 0
|
||||||
%tfooter
|
%tfooter
|
||||||
%tr
|
%tr
|
||||||
%th(colspan="3")
|
%th(colspan="4")
|
||||||
%th= t('.total_sum') + ':'
|
%th= t('.total_sum') + ':'
|
||||||
%th.numeric= number_to_currency(total)
|
%th.numeric= number_to_currency(total)
|
||||||
- else
|
- else
|
||||||
|
|
|
@ -1046,9 +1046,23 @@ de:
|
||||||
error_stale: In der Zwischenzeit hat jemand anderes auch bestellt, daher konnte die Bestellung nicht aktualisiert werden.
|
error_stale: In der Zwischenzeit hat jemand anderes auch bestellt, daher konnte die Bestellung nicht aktualisiert werden.
|
||||||
notice: Die Bestellung wurde gespeichert.
|
notice: Die Bestellung wurde gespeichert.
|
||||||
errors:
|
errors:
|
||||||
|
balance_alert: Kontostand im Minus
|
||||||
closed: Diese Bestellung ist bereits abgeschlossen.
|
closed: Diese Bestellung ist bereits abgeschlossen.
|
||||||
no_member: Du bist kein Mitglieder einer Bestellgruppe.
|
no_member: Du bist kein Mitglieder einer Bestellgruppe.
|
||||||
notfound: Fehlerhafte URL, das ist nicht Deine Bestellung.
|
notfound: Fehlerhafte URL, das ist nicht Deine Bestellung.
|
||||||
|
explanations:
|
||||||
|
package_fill_level: |
|
||||||
|
Gebindefüllstand
|
||||||
|
missing_none: |
|
||||||
|
Voll
|
||||||
|
missing_few: |
|
||||||
|
Wenig fehlt
|
||||||
|
missing_many: |
|
||||||
|
Viel fehlt
|
||||||
|
title: Erklärungen
|
||||||
|
tolerance_explained: |
|
||||||
|
Zusätzliche Menge die du bestellen würdest, damit das Gebinde voll wird.
|
||||||
|
tolerance: Toleranz
|
||||||
form:
|
form:
|
||||||
action_save: Bestellung speichern
|
action_save: Bestellung speichern
|
||||||
new_funds: Neuer Kontostand
|
new_funds: Neuer Kontostand
|
||||||
|
@ -1057,6 +1071,7 @@ de:
|
||||||
search_article: Artikel suchen...
|
search_article: Artikel suchen...
|
||||||
sum_amount: Gesamtbestellmenge bisher
|
sum_amount: Gesamtbestellmenge bisher
|
||||||
title: Bestellen
|
title: Bestellen
|
||||||
|
sub_title: Bestellung für %{order_name} aufgeben
|
||||||
total_sum_amount: Gesamtbetrag
|
total_sum_amount: Gesamtbetrag
|
||||||
total_tolerance: Gesamt-Toleranz
|
total_tolerance: Gesamt-Toleranz
|
||||||
units: Gebinde
|
units: Gebinde
|
||||||
|
@ -1100,7 +1115,6 @@ de:
|
||||||
sum: Summe
|
sum: Summe
|
||||||
title: Dein Bestellergebnis für %{order}
|
title: Dein Bestellergebnis für %{order}
|
||||||
switch_order:
|
switch_order:
|
||||||
remaining: "noch %{remaining}"
|
|
||||||
title: Laufende Bestellungen
|
title: Laufende Bestellungen
|
||||||
update:
|
update:
|
||||||
error_general: Die Bestellung konnte nicht aktualisiert werden, da ein Fehler auftrat.
|
error_general: Die Bestellung konnte nicht aktualisiert werden, da ein Fehler auftrat.
|
||||||
|
|
|
@ -1048,9 +1048,23 @@ en:
|
||||||
error_stale: Someone else has ordered in the meantime, couldn't update the order.
|
error_stale: Someone else has ordered in the meantime, couldn't update the order.
|
||||||
notice: The order was saved.
|
notice: The order was saved.
|
||||||
errors:
|
errors:
|
||||||
|
balance_alert: Negative account balance
|
||||||
closed: This order is already closed.
|
closed: This order is already closed.
|
||||||
no_member: You are not a member of an ordergroup.
|
no_member: You are not a member of an ordergroup.
|
||||||
notfound: Incorrect URL, this is not your order.
|
notfound: Incorrect URL, this is not your order.
|
||||||
|
explanations:
|
||||||
|
title: Explanations
|
||||||
|
tolerance: Tolerance
|
||||||
|
package_fill_level: |
|
||||||
|
Package Fill Level
|
||||||
|
missing_none: |
|
||||||
|
No more missing
|
||||||
|
missing_few: |
|
||||||
|
Few missing
|
||||||
|
missing_many: |
|
||||||
|
Many missing
|
||||||
|
tolerance_explained: |
|
||||||
|
Additional amount you would buy to fill a wholesale package
|
||||||
form:
|
form:
|
||||||
action_save: Save order
|
action_save: Save order
|
||||||
new_funds: New account balance
|
new_funds: New account balance
|
||||||
|
@ -1059,6 +1073,7 @@ en:
|
||||||
search_article: Search for articles...
|
search_article: Search for articles...
|
||||||
sum_amount: Current amount
|
sum_amount: Current amount
|
||||||
title: Orders
|
title: Orders
|
||||||
|
sub_title: Place order for %{order_name}
|
||||||
total_sum_amount: Total amount
|
total_sum_amount: Total amount
|
||||||
total_tolerance: Total tolerance
|
total_tolerance: Total tolerance
|
||||||
units: Units
|
units: Units
|
||||||
|
@ -1102,7 +1117,6 @@ en:
|
||||||
sum: Sum
|
sum: Sum
|
||||||
title: Your order result for %{order}
|
title: Your order result for %{order}
|
||||||
switch_order:
|
switch_order:
|
||||||
remaining: "%{remaining} remaining"
|
|
||||||
title: Current orders
|
title: Current orders
|
||||||
update:
|
update:
|
||||||
error_general: The order couldn’t be updated due to a bug.
|
error_general: The order couldn’t be updated due to a bug.
|
||||||
|
|
|
@ -1018,6 +1018,7 @@ nl:
|
||||||
error_stale: In de tussentijd heeft iemand anders ook bestelt, daarom kon de bestelling niet bijgewerkt worden.
|
error_stale: In de tussentijd heeft iemand anders ook bestelt, daarom kon de bestelling niet bijgewerkt worden.
|
||||||
notice: Bestelling opgeslagen.
|
notice: Bestelling opgeslagen.
|
||||||
errors:
|
errors:
|
||||||
|
balance_alert: Accountsaldo in het rood
|
||||||
closed: Deze bestelling is al gesloten.
|
closed: Deze bestelling is al gesloten.
|
||||||
no_member: Je bent geen lid van dit huishouden.
|
no_member: Je bent geen lid van dit huishouden.
|
||||||
notfound: Foute URL, dit is niet jouw bestelling.
|
notfound: Foute URL, dit is niet jouw bestelling.
|
||||||
|
@ -1029,6 +1030,7 @@ nl:
|
||||||
search_article: Artikelen zoeken...
|
search_article: Artikelen zoeken...
|
||||||
sum_amount: Huidig totaalbedrag
|
sum_amount: Huidig totaalbedrag
|
||||||
title: Bestellen
|
title: Bestellen
|
||||||
|
sub_title: Plaats bestelling voor %{order_name}
|
||||||
total_sum_amount: Totalbedrag
|
total_sum_amount: Totalbedrag
|
||||||
total_tolerance: Totale tolerantie
|
total_tolerance: Totale tolerantie
|
||||||
units: Eenheden
|
units: Eenheden
|
||||||
|
@ -1072,7 +1074,6 @@ nl:
|
||||||
sum: Som
|
sum: Som
|
||||||
title: Jouw bestelling voor %{order}
|
title: Jouw bestelling voor %{order}
|
||||||
switch_order:
|
switch_order:
|
||||||
remaining: "nog %{remaining}"
|
|
||||||
title: Lopende bestellingen
|
title: Lopende bestellingen
|
||||||
update:
|
update:
|
||||||
error_general: Er is een probleem opgetreden, de bestelling kon niet bijgewerkt worden.
|
error_general: Er is een probleem opgetreden, de bestelling kon niet bijgewerkt worden.
|
||||||
|
|
Loading…
Reference in a new issue