# 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