mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
60 lines
1.6 KiB
Ruby
60 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Reporting
|
|
module Reports
|
|
module Packing
|
|
class Supplier < Base
|
|
def table_columns
|
|
Struct.new(:keys).new(
|
|
[:hub, :supplier, :customer_code, :first_name, :last_name, :phone,
|
|
:product, :variant, :quantity, :price, :temp_controlled, :shipment_state,
|
|
:shipping_method]
|
|
)
|
|
end
|
|
|
|
def columns
|
|
# Reorder default columns
|
|
super.slice(*table_columns.keys)
|
|
end
|
|
|
|
def rules
|
|
[
|
|
{
|
|
group_by: :hub,
|
|
header: true,
|
|
header_class: "h1 with-background text-center",
|
|
},
|
|
{
|
|
group_by: :supplier,
|
|
header: true,
|
|
summary_row:,
|
|
summary_row_label: I18n.t('admin.reports.total_by_supplier').upcase
|
|
},
|
|
{
|
|
group_by: proc { |_item, row| row_header(row) },
|
|
header: true,
|
|
header_class: 'h4',
|
|
fields_used_in_header: [:first_name, :last_name, :customer_code, :phone],
|
|
summary_row:,
|
|
summary_row_class: "",
|
|
summary_row_label: I18n.t('admin.reports.total_by_customer')
|
|
}
|
|
]
|
|
end
|
|
|
|
def ordering_fields
|
|
lambda do
|
|
[
|
|
distributor_alias[:name],
|
|
supplier_alias[:name],
|
|
Arel.sql("product"),
|
|
Arel.sql("variant"),
|
|
Arel.sql("last_name")
|
|
]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|