Option delete items added to check_availability page

This commit is contained in:
adam.harbas@a-net.ba
2015-12-29 13:36:02 +01:00
parent 1fa1c1c18e
commit 4ccfdb002e
5 changed files with 67 additions and 25 deletions

View File

@@ -0,0 +1,5 @@
class CheckItemsConstraint
def self.matches?(request)
request.params[:commit] == 'Check'
end
end

View File

@@ -0,0 +1,5 @@
class DeleteItemsConstraint
def self.matches?(request)
request.params[:commit] == 'Delete Items'
end
end

View File

@@ -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

View File

@@ -2,33 +2,48 @@
<p><label for="supplier_id">Supplier: </label>
<%= 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:
</label><br />
<%= text_area_tag "codes", @codes_to_check, rows: 20, columns: 50 %></p>
<p><%= submit_tag "Check" %></p>
<p><%= submit_tag "Delete Items" %></p>
<% end %>
<div>
<h2> In database: <%= @items.length %>, in file: <%= @codes_to_check_array.length %> </h2>
</div>
<% if controller.action_name == 'delete_items' %>
<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 %>
</div>
<div>
<h2>Not in file (<%= @missing_from_codes.length %>): </h2>
<br />
<% @missing_from_codes.each do |code| %>
<%= code %><br />
<% end %>
</div>

View File

@@ -15,12 +15,13 @@ Rails.application.routes.draw do
resources :multi_media_descriptions do as_routes end
resources :sections do as_routes end
resources :media_types do as_routes end
resources :items do
collection do
resources :items do
collection do
get 'check_availability'
post 'check_availability'
post 'check_availability' => 'items#check_availability', constraints: CheckItemsConstraint
post 'check_availability' => 'items#delete_items', constraints: DeleteItemsConstraint
end
as_routes
as_routes
end
resources :units do as_routes end
resources :sub_categories do as_routes end