Files
openfoodnetwork/lib/reporting/reports/packing/customer.rb
2021-11-04 14:55:23 +00:00

50 lines
1.5 KiB
Ruby

# frozen_string_literal: true
module Reporting
module Reports
module Packing
class Customer < Base
def select_fields
lambda do
{
hub: default_blank(distributor_alias[:name]),
customer_code: default_blank(masked(customer_table[:code])),
first_name: default_blank(masked(bill_address_alias[:firstname])),
last_name: default_blank(masked(bill_address_alias[:lastname])),
supplier: default_blank(supplier_alias[:name]),
product: default_string(product_table[:name], summary_row_title),
variant: default_blank(variant_full_name),
quantity: sum_values(line_item_table[:quantity]),
temp_controlled: boolean_blank(shipping_category_table[:temperature_controlled]),
}
end
end
def ordering_fields
lambda do
[
distributor_alias[:name],
bill_address_alias[:lastname],
order_table[:id],
sql_grouping(grouping_fields),
Arel.sql("supplier"),
Arel.sql("product"),
Arel.sql("variant"),
]
end
end
def group_sets
lambda do
[
distributor_alias[:name],
bill_address_alias[:lastname],
grouping_sets([parenthesise(order_table[:id]), parenthesise(grouping_fields)])
]
end
end
end
end
end
end