mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
Merge pull request #10041 from abdellani/add_on-hand_and_on-demand_to_product_report
Add 'on hand' and 'on demand' to Products report
This commit is contained in:
@@ -4105,6 +4105,9 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
select_and_search: "Select filters and click on %{option} to access your data."
|
||||
customer_names_message:
|
||||
customer_names_tip: "If customer names are hidden for orders you have supplied, you can contact the distributor and ask if they can update their shop preferences to allow their suppliers to view customer names."
|
||||
products_and_inventory:
|
||||
all_products:
|
||||
message: "Note that stock levels reported are from supplier product lists only. If you are using Inventory to manage your stock quantities these values will be ignored in this report."
|
||||
users:
|
||||
index:
|
||||
listing_users: "Listing Users"
|
||||
|
||||
@@ -36,7 +36,7 @@ module Reporting
|
||||
else
|
||||
[]
|
||||
end
|
||||
params_fields_to_show - fields_in_headers
|
||||
params_fields_to_show - fields_in_headers - fields_to_hide
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -4,6 +4,30 @@ module Reporting
|
||||
module Reports
|
||||
module ProductsAndInventory
|
||||
class AllProducts < Base
|
||||
def default_params
|
||||
{ fields_to_hide: [:on_demand, :on_hand] }
|
||||
end
|
||||
|
||||
def message
|
||||
I18n.t("spree.admin.reports.products_and_inventory.all_products.message")
|
||||
end
|
||||
|
||||
def custom_headers
|
||||
{
|
||||
on_demand: I18n.t("admin.on_demand?"),
|
||||
on_hand: I18n.t("admin.on_hand")
|
||||
}
|
||||
end
|
||||
|
||||
def columns
|
||||
super.merge(
|
||||
{
|
||||
on_demand: proc{ |variant| variant.on_demand },
|
||||
on_hand: proc{ |variant| variant.on_demand ? I18n.t(:on_demand) : variant.on_hand }
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
def filter_on_hand(variants)
|
||||
variants # do not filter
|
||||
end
|
||||
|
||||
@@ -15,7 +15,7 @@ module Reporting
|
||||
order.line_items.first.variant.product.supplier
|
||||
end
|
||||
let(:current_user) { distributor.owner }
|
||||
let(:params) { { display_summary_row: false } }
|
||||
let(:params) { { display_summary_row: false, fields_to_hide: [] } }
|
||||
let(:report) do
|
||||
OrderCycleSupplierTotals.new(current_user, params)
|
||||
end
|
||||
|
||||
@@ -266,6 +266,64 @@ module Reporting
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe AllProducts do
|
||||
let(:user) do
|
||||
user = create(:user)
|
||||
user.spree_roles << Spree::Role.find_or_create_by!(name: 'admin')
|
||||
user
|
||||
end
|
||||
let(:report) do
|
||||
AllProducts.new user, { fields_to_hide: [] }
|
||||
end
|
||||
|
||||
it "Should return headers" do
|
||||
expect(report.table_headers).to eq([
|
||||
"Supplier",
|
||||
"Producer Suburb",
|
||||
"Product",
|
||||
"Product Properties",
|
||||
"Taxons",
|
||||
"Variant Value",
|
||||
"Price",
|
||||
"Group Buy Unit Quantity",
|
||||
"Amount",
|
||||
"SKU",
|
||||
"On Demand?",
|
||||
"On Hand"
|
||||
])
|
||||
end
|
||||
|
||||
it "Should render 'On demand' when the product is available on demand" do
|
||||
product = create(:product)
|
||||
variant = product.variants.first
|
||||
variant.on_demand = true
|
||||
variant.on_hand = 15
|
||||
variant.save!
|
||||
|
||||
first_row = report.table_rows.first
|
||||
on_demand_column = first_row[-2]
|
||||
on_hand_column = first_row[-1]
|
||||
|
||||
expect(on_demand_column).to eq("Yes")
|
||||
expect(on_hand_column).to eq("On demand")
|
||||
end
|
||||
|
||||
it "Should render the on hand count when the product is not available on demand" do
|
||||
product = create(:product)
|
||||
variant = product.variants.first
|
||||
variant.on_demand = false
|
||||
variant.on_hand = 22
|
||||
variant.save!
|
||||
|
||||
first_row = report.table_rows.first
|
||||
on_demand_column = first_row[-2]
|
||||
on_hand_column = first_row[-1]
|
||||
|
||||
expect(on_demand_column).to eq("No")
|
||||
expect(on_hand_column).to eq(22)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user