diff --git a/app/assets/javascripts/admin/orders/controllers/order_controller.js.coffee b/app/assets/javascripts/admin/orders/controllers/order_controller.js.coffee index 39faaaa205..822e81eb49 100644 --- a/app/assets/javascripts/admin/orders/controllers/order_controller.js.coffee +++ b/app/assets/javascripts/admin/orders/controllers/order_controller.js.coffee @@ -24,8 +24,3 @@ angular.module("admin.orders").controller "orderCtrl", ($scope, shops, orderCycl for shop in $scope.shops shop.disabled = !$scope.distributorHasOrderCycles(shop) - - # Removes the split button introduced by spree in the order form - # We only have one stock location in OFN so it's meaningless to split the order between stock locations - # We delete it instead of hiding or changing CSS so that, when spree code toggles the element, nothing hapens - $('.split-item').remove() diff --git a/app/views/spree/admin/orders/_shipment.html.haml b/app/views/spree/admin/orders/_shipment.html.haml new file mode 100644 index 0000000000..2b5338806d --- /dev/null +++ b/app/views/spree/admin/orders/_shipment.html.haml @@ -0,0 +1,100 @@ +%div{ :id => "shipment_#{shipment.id}" } + %fieldset.no-border-bottom + %legend.stock-location{ :align => "center", "data-hook" => "stock-location" } + %span.shipment-number + = shipment.number + = "-" + %span.shipment-state + = Spree.t("shipment_states.#{shipment.state}") + - if shipment.ready? and can? :update, shipment + = "-" + = link_to 'ship', '#', :class => 'ship button icon-arrow-right', :data => { 'shipment-number' => shipment.number } + + %table.stock-contents.index{ "data-hook" => "stock-contents" } + %colgroup + %col{ :style => "width: 10%;" } + %col{ :style => "width: 30%;" } + %col{ :style => "width: 15%;" } + %col{ :style => "width: 15%;" } + %col{ :style => "width: 15%;" } + %col{ :style => "width: 15%;" } + + %thead + %th{ :colspan => "2" } + = Spree.t(:item_description) + %th + = Spree.t(:price) + %th + = Spree.t(:quantity) + %th + = Spree.t(:total) + %th.orders-actions.actions{ "data-hook" => "admin_order_form_line_items_header_actions" } + + %tbody{ "data-shipment-number" => "#{shipment.number}", "data-order-number" => "#{order.number}" } + = render 'spree/admin/orders/shipment_manifest', order: order, shipment: shipment + + - unless shipment.shipped? + %tr.edit-method.hidden.total + %td{ :colspan => "5" } + %div.field.alpha.five.columns + = label_tag 'selected_shipping_rate_id', Spree.t(:shipping_method) + = select_tag :selected_shipping_rate_id, options_for_select(shipment.shipping_rates.backend.map { |sr| ["#{sr.name} #{sr.display_price}", sr.id] }, shipment.selected_shipping_rate_id), { :class => 'select2 fullwidth', :data => { 'shipment-number' => shipment.number } } + + - if shipment.adjustment && shipment.adjustment.closed? + %div.field.omega.four.columns + %label + = Spree.t(:associated_adjustment_closed) + %ul + %li + = radio_button_tag :open_adjustment, 'yes', false, :data => { 'shipment-number' => shipment.number } + = "Yes" + %li + = radio_button_tag :open_adjustment, 'no', true, :data => {'shipment-number' => shipment.number } + = "No" + + %td.actions + - if can? :update, shipment + = link_to '', '#', :class => 'save-method icon_link icon-ok no-text with-tip', :data => { 'shipment-number' => shipment.number, :action => 'save' }, title: Spree.t('actions.save') + = link_to '', '#', :class => 'cancel-method icon_link icon-cancel no-text with-tip', :data => { :action => 'cancel' }, :title => Spree.t('actions.cancel') + + %tr.show-method.total + %td{ :colspan => "4" } + - if shipment.adjustment.present? + %strong + = "#{shipment.adjustment.label}: #{shipment.shipping_method.name}" + - else + = Spree.t(:cannot_set_shipping_method_without_address) + + %td.total{ :align => "center" } + - if shipment.adjustment.present? + %span + = shipment.adjustment.display_amount + + - if shipment.adjustment.present? && !shipment.shipped? + %td.actions + - if can? :update, shipment + = link_to '', '#', :class => 'edit-method icon_link icon-edit no-text with-tip', :data => { :action => 'edit' }, :title => Spree.t('edit') + + %tr.edit-tracking.hidden.total + %td{ :colspan => "5" } + %label + = "#{Spree.t(:tracking_number)}:" + = text_field_tag :tracking, shipment.tracking + + %td.actions + - if can? :update, shipment + = link_to '', '#', :class => 'save-tracking icon_link icon-ok no-text with-tip', :data => { 'shipment-number' => shipment.number, :action => 'save' }, :title => Spree.t('actions.save') + = link_to '', '#', :class => 'cancel-tracking icon_link icon-cancel no-text with-tip', :data => { :action => 'cancel' }, :title => Spree.t('actions.cancel') + + %tr.show-tracking.total + %td{ :colspan => "5" } + - if shipment.tracking.present? + %strong + = "#{Spree.t(:tracking)}:" + = shipment.tracking + - else + = Spree.t(:no_tracking_present) + + %td.actions + - if can? :update, shipment + = link_to '', '#', :class => 'edit-tracking icon_link icon-edit no-text with-tip', :data => { :action => 'edit' }, :title => Spree.t('edit') diff --git a/app/views/spree/admin/orders/_shipment_manifest.html.haml b/app/views/spree/admin/orders/_shipment_manifest.html.haml new file mode 100644 index 0000000000..75eaa2f4ad --- /dev/null +++ b/app/views/spree/admin/orders/_shipment_manifest.html.haml @@ -0,0 +1,25 @@ +- shipment.manifest.each do |item| + - line_item = order.find_line_item_by_variant(item.variant) + + %tr.stock-item{ "data-item-quantity" => "#{item.quantity}" } + %td.item-image + = mini_image(item.variant) + %td.item-name + = item.variant.product_and_full_name + %td.item-price.align-center + = line_item.single_money.to_html + %td.item-qty-show.align-center + - item.states.each do |state,count| + = "#{count} x #{state.humanize.downcase}" + - unless shipment.shipped? + %td.item-qty-edit.hidden + = number_field_tag :quantity, item.quantity, :min => 0, :class => "line_item_quantity", :size => 5 + %td.item-total.align-center + = line_item_shipment_price(line_item, item.quantity) + + %td.cart-item-delete.actions{ "data-hook" => "cart_item_delete" } + - if !shipment.shipped? && can?(:update, shipment) + = link_to '', '#', :class => 'save-item icon_link icon-ok no-text with-tip', :data => {'shipment-number' => shipment.number, 'variant-id' => item.variant.id, :action => 'save'}, :title => t('actions.save'), :style => 'display: none' + = link_to '', '#', :class => 'cancel-item icon_link icon-cancel no-text with-tip', :data => {:action => 'cancel'}, :title => t('actions.cancel'), :style => 'display: none' + = link_to '', '#', :class => 'edit-item icon_link icon-edit no-text with-tip', :data => {:action => 'edit'}, :title => t('actions.edit') + = link_to '', '#', :class => 'delete-item icon-trash no-text with-tip', :data => {'shipment-number' => shipment.number, 'variant-id' => item.variant.id, :action => 'remove', :confirm => t(:are_you_sure)}, :title => t('actions.delete') diff --git a/config/locales/en.yml b/config/locales/en.yml index 015624df34..1d18cce5bc 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -278,6 +278,10 @@ en: create_and_add_another: "Create and Add Another" create: "Create" cancel: "Cancel" + save: "Save" + edit: "Edit" + delete: "Delete" + admin: # Common properties / models begins_at: Begins At