Option delete items added to check_availability page
This commit is contained in:
5
back-office/app/constraints/check_items_constraint.rb
Normal file
5
back-office/app/constraints/check_items_constraint.rb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
class CheckItemsConstraint
|
||||||
|
def self.matches?(request)
|
||||||
|
request.params[:commit] == 'Check'
|
||||||
|
end
|
||||||
|
end
|
||||||
5
back-office/app/constraints/delete_items_constraint.rb
Normal file
5
back-office/app/constraints/delete_items_constraint.rb
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
class DeleteItemsConstraint
|
||||||
|
def self.matches?(request)
|
||||||
|
request.params[:commit] == 'Delete Items'
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -15,4 +15,20 @@ class ItemsController < ApplicationController
|
|||||||
@missing_from_database = (@codes_to_check_array - items_to_check) || []
|
@missing_from_database = (@codes_to_check_array - items_to_check) || []
|
||||||
@missing_from_codes = (items_to_check - @codes_to_check_array) || []
|
@missing_from_codes = (items_to_check - @codes_to_check_array) || []
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
@@ -2,33 +2,48 @@
|
|||||||
<p><label for="supplier_id">Supplier: </label>
|
<p><label for="supplier_id">Supplier: </label>
|
||||||
<%= select_tag "supplier_id", options_from_collection_for_select(@suppliers, "id", "name", @selected_supplier.try(:id)) %></p>
|
<%= select_tag "supplier_id", options_from_collection_for_select(@suppliers, "id", "name", @selected_supplier.try(:id)) %></p>
|
||||||
|
|
||||||
<p><label for="codes">
|
<p><label for="codes">
|
||||||
Codes to check:
|
Codes to check:
|
||||||
</label><br />
|
</label><br />
|
||||||
<%= text_area_tag "codes", @codes_to_check, rows: 20, columns: 50 %></p>
|
<%= text_area_tag "codes", @codes_to_check, rows: 20, columns: 50 %></p>
|
||||||
|
|
||||||
<p><%= submit_tag "Check" %></p>
|
<p><%= submit_tag "Check" %></p>
|
||||||
|
<p><%= submit_tag "Delete Items" %></p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div>
|
<% if controller.action_name == 'delete_items' %>
|
||||||
<h2> In database: <%= @items.length %>, in file: <%= @codes_to_check_array.length %> </h2>
|
|
||||||
</div>
|
<h2> Delete successful </h2>
|
||||||
|
|
||||||
|
<% if @not_deleted_items.length > 0 %>
|
||||||
|
<p>Not deleted items</p>
|
||||||
|
<% @not_deleted_items.each do |code| %>
|
||||||
|
<%= code %><br />
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
<% else %>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2> In database: <%= @items.length %>, in file: <%= @codes_to_check_array.length %> </h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2>Not in database (<%= @missing_from_database.length %>): </h2>
|
||||||
|
<br />
|
||||||
|
<% @missing_from_database.each do |code| %>
|
||||||
|
<%= code %><br />
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2>Not in file (<%= @missing_from_codes.length %>): </h2>
|
||||||
|
<br />
|
||||||
|
<% @missing_from_codes.each do |code| %>
|
||||||
|
<%= code %><br />
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<div>
|
|
||||||
<h2>Not in database (<%= @missing_from_database.length %>): </h2>
|
|
||||||
<br />
|
|
||||||
<% @missing_from_database.each do |code| %>
|
|
||||||
<%= code %><br />
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<h2>Not in file (<%= @missing_from_codes.length %>): </h2>
|
|
||||||
<br />
|
|
||||||
<% @missing_from_codes.each do |code| %>
|
|
||||||
<%= code %><br />
|
|
||||||
<% end %>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,12 +15,13 @@ Rails.application.routes.draw do
|
|||||||
resources :multi_media_descriptions do as_routes end
|
resources :multi_media_descriptions do as_routes end
|
||||||
resources :sections do as_routes end
|
resources :sections do as_routes end
|
||||||
resources :media_types do as_routes end
|
resources :media_types do as_routes end
|
||||||
resources :items do
|
resources :items do
|
||||||
collection do
|
collection do
|
||||||
get 'check_availability'
|
get 'check_availability'
|
||||||
post 'check_availability'
|
post 'check_availability' => 'items#check_availability', constraints: CheckItemsConstraint
|
||||||
|
post 'check_availability' => 'items#delete_items', constraints: DeleteItemsConstraint
|
||||||
end
|
end
|
||||||
as_routes
|
as_routes
|
||||||
end
|
end
|
||||||
resources :units do as_routes end
|
resources :units do as_routes end
|
||||||
resources :sub_categories do as_routes end
|
resources :sub_categories do as_routes end
|
||||||
|
|||||||
Reference in New Issue
Block a user