created item availability checking tool

This commit is contained in:
Senad Uka
2015-11-14 07:07:08 +01:00
parent 0aab42fa67
commit a341137939
4 changed files with 55 additions and 2 deletions

View File

@@ -3,4 +3,16 @@ class ItemsController < ApplicationController
conf.columns[:unit].form_ui = :select
conf.columns[:sub_category].form_ui = :select
end
def check_availability
@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 }
@missing_from_database = (@codes_to_check_array - items_to_check) || []
@missing_from_codes = (items_to_check - @codes_to_check_array) || []
end
end

View File

@@ -0,0 +1,34 @@
<%= form_tag('/items/check_availability') do %>
<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">
Codes to check:
</label><br />
<%= text_area_tag "codes", @codes_to_check, rows: 20, columns: 50 %></p>
<p><%= submit_tag "Check" %></p>
<% end %>
<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>

View File

@@ -34,6 +34,7 @@ RailsAdmin.config do |config|
config.navigation_static_links = {
'Orders to Confirm' => '../reports/orders_to_confirm',
'Items to Order' => '../reports/items_to_order'
'Items to Order' => '../reports/items_to_order',
'Check availability' => '../items/check_availability'
}
end

View File

@@ -15,7 +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 as_routes end
resources :items do
collection do
get 'check_availability'
post 'check_availability'
end
as_routes
end
resources :units do as_routes end
resources :sub_categories do as_routes end
resources :categories do as_routes end