diff --git a/back-office/app/constraints/check_items_constraint.rb b/back-office/app/constraints/check_items_constraint.rb new file mode 100644 index 0000000..023d041 --- /dev/null +++ b/back-office/app/constraints/check_items_constraint.rb @@ -0,0 +1,5 @@ +class CheckItemsConstraint + def self.matches?(request) + request.params[:commit] == 'Check' + end +end diff --git a/back-office/app/constraints/delete_items_constraint.rb b/back-office/app/constraints/delete_items_constraint.rb new file mode 100644 index 0000000..208fcaa --- /dev/null +++ b/back-office/app/constraints/delete_items_constraint.rb @@ -0,0 +1,5 @@ +class DeleteItemsConstraint + def self.matches?(request) + request.params[:commit] == 'Delete Items' + end +end diff --git a/back-office/app/controllers/items_controller.rb b/back-office/app/controllers/items_controller.rb index a3a9b02..751a95e 100644 --- a/back-office/app/controllers/items_controller.rb +++ b/back-office/app/controllers/items_controller.rb @@ -15,4 +15,20 @@ class ItemsController < ApplicationController @missing_from_database = (@codes_to_check_array - items_to_check) || [] @missing_from_codes = (items_to_check - @codes_to_check_array) || [] end + + def delete_items + @suppliers = Supplier.order(:name).all + @selected_supplier = Supplier.find_by_id(params[:supplier_id]) + @items = @selected_supplier.try(:items) || [] + @codes_to_check = params[:codes] || "" + @codes_to_check_array = @codes_to_check.split("\n").reject { |code| code.strip.blank? }.map(&:strip) + items_to_check = @items.map { |i| i.code.strip } + + @items_for_delete = items_to_check & @codes_to_check_array + Item.where(:code => @items_for_delete).destroy_all + + @not_deleted_items = (@codes_to_check_array - @items_for_delete) || [] + + render :template => "items/check_availability" + end end diff --git a/back-office/app/views/items/check_availability.html.erb b/back-office/app/views/items/check_availability.html.erb index 6ca3489..ceb2ab1 100644 --- a/back-office/app/views/items/check_availability.html.erb +++ b/back-office/app/views/items/check_availability.html.erb @@ -2,33 +2,48 @@
<%= select_tag "supplier_id", options_from_collection_for_select(@suppliers, "id", "name", @selected_supplier.try(:id)) %>
-