mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
52 lines
1.3 KiB
Ruby
52 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Reporting
|
|
module Reports
|
|
module Packing
|
|
class Customer < Base
|
|
def table_columns
|
|
Struct.new(:keys).new(
|
|
[:hub, :customer_code, :first_name, :last_name, :phone, :supplier, :product,
|
|
:variant, :weight, :height, :width, :depth, :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: proc { |_item, row| row_header(row) },
|
|
header: true,
|
|
fields_used_in_header: [:first_name, :last_name, :customer_code, :phone],
|
|
summary_row:,
|
|
}
|
|
]
|
|
end
|
|
|
|
def ordering_fields
|
|
lambda do
|
|
[
|
|
distributor_alias[:name],
|
|
bill_address_alias[:lastname],
|
|
order_table[:id],
|
|
Arel.sql("supplier"),
|
|
Arel.sql("product"),
|
|
Arel.sql("variant"),
|
|
]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|