From 7cd8311dcbc0ebb5ca43b7ab94444c0896652997 Mon Sep 17 00:00:00 2001 From: Ahmed Ejaz Date: Sat, 2 Nov 2024 17:01:03 +0500 Subject: [PATCH] 12890: add cities and countries data --- .../services/affiliate_sales_data_row_builder.rb | 16 +++++++++++++--- .../app/services/affiliate_sales_query.rb | 16 +++++++++++++++- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/engines/dfc_provider/app/services/affiliate_sales_data_row_builder.rb b/engines/dfc_provider/app/services/affiliate_sales_data_row_builder.rb index 073097a04f..c6e9a2d913 100644 --- a/engines/dfc_provider/app/services/affiliate_sales_data_row_builder.rb +++ b/engines/dfc_provider/app/services/affiliate_sales_data_row_builder.rb @@ -12,7 +12,11 @@ class AffiliateSalesDataRowBuilder < DfcBuilder def build_supplier DataFoodConsortium::Connector::Enterprise.new( nil, - localizations: [build_address(item[:supplier_postcode])], + localizations: [build_address( + item[:supplier_postcode], + item[:supplier_city], + item[:supplier_country] + )], suppliedProducts: [build_product], ) end @@ -20,7 +24,11 @@ class AffiliateSalesDataRowBuilder < DfcBuilder def build_distributor DataFoodConsortium::Connector::Enterprise.new( nil, - localizations: [build_address(item[:distributor_postcode])], + localizations: [build_address( + item[:distributor_postcode], + item[:distributor_city], + item[:distributor_country] + )], ) end @@ -89,9 +97,11 @@ class AffiliateSalesDataRowBuilder < DfcBuilder ) end - def build_address(postcode) + def build_address(postcode, city, country) DataFoodConsortium::Connector::Address.new( nil, + city:, + country:, postalCode: postcode, ) end diff --git a/engines/dfc_provider/app/services/affiliate_sales_query.rb b/engines/dfc_provider/app/services/affiliate_sales_query.rb index 3193ed5623..91a3f9e627 100644 --- a/engines/dfc_provider/app/services/affiliate_sales_query.rb +++ b/engines/dfc_provider/app/services/affiliate_sales_query.rb @@ -38,9 +38,11 @@ class AffiliateSalesQuery JOIN spree_products ON spree_products.id = spree_variants.product_id JOIN enterprises AS suppliers ON suppliers.id = spree_variants.supplier_id JOIN spree_addresses AS supplier_addresses ON supplier_addresses.id = suppliers.address_id + JOIN spree_countries AS supplier_countries ON supplier_countries.id = supplier_addresses.country_id JOIN spree_orders ON spree_orders.id = spree_line_items.order_id JOIN enterprises AS distributors ON distributors.id = spree_orders.distributor_id JOIN spree_addresses AS distributor_addresses ON distributor_addresses.id = distributors.address_id + JOIN spree_countries AS distributor_countries ON distributor_countries.id = distributor_addresses.country_id SQL end @@ -53,7 +55,11 @@ class AffiliateSalesQuery spree_variants.unit_presentation, spree_line_items.price, distributor_addresses.zipcode AS distributor_postcode, + distributor_addresses.city AS distributor_city, + distributor_countries.name AS distributor_country, supplier_addresses.zipcode AS supplier_postcode, + supplier_addresses.city AS supplier_city, + supplier_countries.name AS supplier_country, SUM(spree_line_items.quantity) AS quantity_sold SQL @@ -68,7 +74,11 @@ class AffiliateSalesQuery spree_variants.unit_presentation, spree_line_items.price, distributor_postcode, - supplier_postcode + supplier_postcode, + distributor_city, + supplier_city, + distributor_country, + supplier_country SQL end @@ -82,7 +92,11 @@ class AffiliateSalesQuery unit_presentation price distributor_postcode + distributor_city + distributor_country supplier_postcode + supplier_city + supplier_country quantity_sold ] end