diff --git a/config/locales/en.yml b/config/locales/en.yml index b8fc654b0b..80079c11e7 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2745,7 +2745,17 @@ See the %{link} to find out more about %{sitename}'s features and to start using report_header_to_hub: To Hub report_header_hub_code: Hub Code report_header_hub_id: Hub ID + report_header_hub_business_number: "Hub Business Number" + report_header_hub_legal_name: "Hub Legal Name" + report_header_hub_contact_name: "Hub Contact Name" + report_header_hub_email: "Hub Public Email" report_header_hub_owner_email: Hub Owner Email + report_header_hub_phone: "Hub Phone Number" + report_header_hub_address_line1: "Hub Address Line 1" + report_header_hub_address_line2: "Hub Address Line 2" + report_header_hub_address_city: "Hub Suburb" + report_header_hub_address_zipcode: "Hub Postcode" + report_header_hub_address_state_name: "Hub State" report_header_code: Code report_header_paid: Paid? report_header_delivery: Delivery? @@ -2780,6 +2790,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using report_header_total_tax: "Total Tax (%{currency_symbol})" report_header_total_excl_tax: "Total excl. tax (%{currency_symbol})" report_header_total_incl_tax: "Total incl. tax (%{currency_symbol})" + report_header_total_orders: "Total Number of Orders" report_header_enterprise: Enterprise report_header_customer: Customer report_header_customer_code: Customer Code diff --git a/lib/reporting/reports/revenues_by_hub/base.rb b/lib/reporting/reports/revenues_by_hub/base.rb index e4192600c8..5fb5de67c3 100644 --- a/lib/reporting/reports/revenues_by_hub/base.rb +++ b/lib/reporting/reports/revenues_by_hub/base.rb @@ -19,11 +19,22 @@ module Reporting } end - def columns + def columns # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity { hub: proc { |orders| distributor(orders).name }, hub_id: proc { |orders| distributor(orders).id }, + hub_business_number: proc { |orders| distributor(orders).abn }, + hub_legal_name: proc { |orders| distributor(orders).business_address&.company }, + hub_contact_name: proc { |orders| distributor(orders).contact_name }, + hub_email: proc { |orders| distributor(orders).email_address }, hub_owner_email: proc { |orders| distributor(orders).owner.email }, + hub_phone: proc { |orders| distributor(orders).phone }, + hub_address_line1: proc { |orders| distributor(orders).address&.address1 }, + hub_address_line2: proc { |orders| distributor(orders).address&.address2 }, + hub_address_city: proc { |orders| distributor(orders).address&.city }, + hub_address_zipcode: proc { |orders| distributor(orders).address&.zipcode }, + hub_address_state_name: proc { |orders| distributor(orders).address&.state_name }, + total_orders: proc { |orders| orders.count }, total_excl_tax: proc { |orders| orders.sum { |order| order.total - order.total_tax } }, diff --git a/spec/system/admin/reports/revenues_by_hub_spec.rb b/spec/system/admin/reports/revenues_by_hub_spec.rb index 13a1b96e4e..813c351b7c 100644 --- a/spec/system/admin/reports/revenues_by_hub_spec.rb +++ b/spec/system/admin/reports/revenues_by_hub_spec.rb @@ -32,7 +32,18 @@ describe "Revenues By Hub Reports" do expect(page.find("table.report__table thead tr").text).to have_content([ "HUB", "HUB ID", + "HUB BUSINESS NUMBER", + "HUB LEGAL NAME", + "HUB CONTACT NAME", + "HUB PUBLIC EMAIL", "HUB OWNER EMAIL", + "HUB PHONE NUMBER", + "HUB ADDRESS LINE 1", + "HUB ADDRESS LINE 2", + "HUB SUBURB", + "HUB POSTCODE", + "HUB STATE", + "TOTAL NUMBER OF ORDERS", "TOTAL EXCL. TAX ($)", "TOTAL TAX ($)", "TOTAL INCL. TAX ($)" @@ -41,7 +52,18 @@ describe "Revenues By Hub Reports" do expect(page.find("table.report__table tbody tr").text).to have_content([ "Hub 1", order.distributor.id, + nil, + nil, + nil, + nil, "email@email.com", + nil, + "10 Lovely Street", + nil, + "Northwest Herndon", + "20170", + "Victoria", + "1", order.total - order.total_tax, order.total_tax, order.total