From ed3ddd3f12401854eccd7f4166306dd65f0d0bf3 Mon Sep 17 00:00:00 2001 From: Hadleigh Wallenberg Date: Fri, 12 Apr 2024 11:41:07 +0100 Subject: [PATCH 1/5] OTT-136 Hierarchy report added with new flag --- app/lib/reporting/differences.rb | 1 + app/lib/reporting/differences/hierarchy.rb | 24 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/app/lib/reporting/differences.rb b/app/lib/reporting/differences.rb index b0f827704..fe70a3e9d 100644 --- a/app/lib/reporting/differences.rb +++ b/app/lib/reporting/differences.rb @@ -130,6 +130,7 @@ def generate(only: []) add_missing_from_xi_worksheet add_indentation_worksheet add_overview_worksheet + add_hierarchy_worksheet ] # methods = %i[ # add_missing_from_uk_worksheet diff --git a/app/lib/reporting/differences/hierarchy.rb b/app/lib/reporting/differences/hierarchy.rb index 97c882084..b1ebddc47 100644 --- a/app/lib/reporting/differences/hierarchy.rb +++ b/app/lib/reporting/differences/hierarchy.rb @@ -6,6 +6,8 @@ class Hierarchy :bold_style, :uk_goods_nomenclatures, :xi_goods_nomenclatures, + :uk_goods_nomenclatures_for_comparison, + :xi_goods_nomenclatures_for_comparison, to: :report WORKSHEET_NAME = 'Hierarchy differences'.freeze @@ -14,6 +16,7 @@ class Hierarchy 'Commodity code (PLS)', 'UK hiearchy', 'EU hierarchy', + 'New', ].freeze TAB_COLOR = 'cc0000'.freeze @@ -24,10 +27,13 @@ class Hierarchy 20, # Commodity code (PLS) 20, # UK hierarchy 20, # EU hierarchy + 20, # New ].freeze FROZEN_VIEW_STARTING_CELL = 'A2'.freeze + @new_issue = false + def initialize(report) @report = report end @@ -44,6 +50,9 @@ def add_worksheet rows.compact.each do |row| report.increment_count(name) + if @new_issue + report.increment_new_issue_count(name) + end sheet.add_row(row, types: CELL_TYPES, style: regular_style) end @@ -79,10 +88,13 @@ def build_row_for(matching) item_id, pls = matching_uk_goods_nomenclature['ItemIDPlusPLS'].split('_') + @new_issue = !uk_goods_nomenclature_ids_for_comparison.include?(matching_uk_goods_nomenclature['ItemIDPlusPLS']) || + !xi_goods_nomenclature_ids_for_comparison.include?(matching_xi_goods_nomenclature['ItemIDPlusPLS']) [ "#{item_id} (#{pls})", matching_uk_goods_nomenclature['Hierarchy'], matching_xi_goods_nomenclature['Hierarchy'], + @new_issue, ] end @@ -97,6 +109,18 @@ def xi_goods_nomenclature_ids goods_nomenclature['ItemIDPlusPLS'] end end + + def uk_goods_nomenclature_ids_for_comparison + @uk_goods_nomenclature_ids_for_comparison ||= uk_goods_nomenclatures_for_comparison.index_by do |goods_nomenclature| + goods_nomenclature['ItemIDPlusPLS'] + end + end + + def xi_goods_nomenclature_ids_for_comparison + @xi_goods_nomenclature_ids_for_comparison ||= xi_goods_nomenclatures_for_comparison.index_by do |goods_nomenclature| + goods_nomenclature['ItemIDPlusPLS'] + end + end end end end From 49e6c16ee51bd6191956b8499ca39fbf48fdb137 Mon Sep 17 00:00:00 2001 From: Hadleigh Wallenberg Date: Fri, 12 Apr 2024 19:10:37 +0100 Subject: [PATCH 2/5] Fixed new flag check to include Hierarchy after a nil check --- app/lib/reporting/differences.rb | 2 +- app/lib/reporting/differences/hierarchy.rb | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/lib/reporting/differences.rb b/app/lib/reporting/differences.rb index fe70a3e9d..94540e665 100644 --- a/app/lib/reporting/differences.rb +++ b/app/lib/reporting/differences.rb @@ -129,8 +129,8 @@ def generate(only: []) add_missing_from_uk_worksheet add_missing_from_xi_worksheet add_indentation_worksheet - add_overview_worksheet add_hierarchy_worksheet + add_overview_worksheet ] # methods = %i[ # add_missing_from_uk_worksheet diff --git a/app/lib/reporting/differences/hierarchy.rb b/app/lib/reporting/differences/hierarchy.rb index b1ebddc47..5ee7e4f72 100644 --- a/app/lib/reporting/differences/hierarchy.rb +++ b/app/lib/reporting/differences/hierarchy.rb @@ -32,8 +32,6 @@ class Hierarchy FROZEN_VIEW_STARTING_CELL = 'A2'.freeze - @new_issue = false - def initialize(report) @report = report end @@ -50,7 +48,7 @@ def add_worksheet rows.compact.each do |row| report.increment_count(name) - if @new_issue + if row.last # last value in a row array is new_issue report.increment_new_issue_count(name) end sheet.add_row(row, types: CELL_TYPES, style: regular_style) @@ -88,13 +86,20 @@ def build_row_for(matching) item_id, pls = matching_uk_goods_nomenclature['ItemIDPlusPLS'].split('_') - @new_issue = !uk_goods_nomenclature_ids_for_comparison.include?(matching_uk_goods_nomenclature['ItemIDPlusPLS']) || - !xi_goods_nomenclature_ids_for_comparison.include?(matching_xi_goods_nomenclature['ItemIDPlusPLS']) + matching_uk_goods_nomenclature_for_comparison = uk_goods_nomenclature_ids_for_comparison[matching] + matching_xi_goods_nomenclature_for_comparison = xi_goods_nomenclature_ids_for_comparison[matching] + + new_issue = if matching_uk_goods_nomenclature_for_comparison.nil? || matching_xi_goods_nomenclature_for_comparison.nil? + true + else + matching_uk_goods_nomenclature_for_comparison['Hierarchy'] == matching_xi_goods_nomenclature_for_comparison['Hierarchy'] + end + [ "#{item_id} (#{pls})", matching_uk_goods_nomenclature['Hierarchy'], matching_xi_goods_nomenclature['Hierarchy'], - @new_issue, + new_issue, ] end From e7adf0ff88fe836d33d380c6e622043fca59409b Mon Sep 17 00:00:00 2001 From: Hadleigh Wallenberg <127106895+HWallenberg@users.noreply.github.com> Date: Mon, 15 Apr 2024 09:59:09 +0100 Subject: [PATCH 3/5] Refactored new_issue assignment --- app/lib/reporting/differences/hierarchy.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/lib/reporting/differences/hierarchy.rb b/app/lib/reporting/differences/hierarchy.rb index 5ee7e4f72..54b9c2e48 100644 --- a/app/lib/reporting/differences/hierarchy.rb +++ b/app/lib/reporting/differences/hierarchy.rb @@ -89,11 +89,7 @@ def build_row_for(matching) matching_uk_goods_nomenclature_for_comparison = uk_goods_nomenclature_ids_for_comparison[matching] matching_xi_goods_nomenclature_for_comparison = xi_goods_nomenclature_ids_for_comparison[matching] - new_issue = if matching_uk_goods_nomenclature_for_comparison.nil? || matching_xi_goods_nomenclature_for_comparison.nil? - true - else - matching_uk_goods_nomenclature_for_comparison['Hierarchy'] == matching_xi_goods_nomenclature_for_comparison['Hierarchy'] - end + new_issue = matching_uk_goods_nomenclature_for_comparison.nil? || matching_xi_goods_nomenclature_for_comparison.nil? || matching_uk_goods_nomenclature_for_comparison['Hierarchy'] != matching_xi_goods_nomenclature_for_comparison['Hierarchy] [ "#{item_id} (#{pls})", From 0032df0eba715231ef17c740cc88506c4a446f65 Mon Sep 17 00:00:00 2001 From: Hadleigh Wallenberg <127106895+HWallenberg@users.noreply.github.com> Date: Mon, 15 Apr 2024 10:03:23 +0100 Subject: [PATCH 4/5] Fixed typo --- app/lib/reporting/differences/hierarchy.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/reporting/differences/hierarchy.rb b/app/lib/reporting/differences/hierarchy.rb index 54b9c2e48..f7b133a13 100644 --- a/app/lib/reporting/differences/hierarchy.rb +++ b/app/lib/reporting/differences/hierarchy.rb @@ -89,7 +89,7 @@ def build_row_for(matching) matching_uk_goods_nomenclature_for_comparison = uk_goods_nomenclature_ids_for_comparison[matching] matching_xi_goods_nomenclature_for_comparison = xi_goods_nomenclature_ids_for_comparison[matching] - new_issue = matching_uk_goods_nomenclature_for_comparison.nil? || matching_xi_goods_nomenclature_for_comparison.nil? || matching_uk_goods_nomenclature_for_comparison['Hierarchy'] != matching_xi_goods_nomenclature_for_comparison['Hierarchy] + new_issue = matching_uk_goods_nomenclature_for_comparison.nil? || matching_xi_goods_nomenclature_for_comparison.nil? || matching_uk_goods_nomenclature_for_comparison['Hierarchy'] != matching_xi_goods_nomenclature_for_comparison['Hierarchy'] [ "#{item_id} (#{pls})", From c6c524159798294826ab86507a85c27e9bf9fc86 Mon Sep 17 00:00:00 2001 From: Hadleigh Wallenberg Date: Mon, 15 Apr 2024 14:27:23 +0100 Subject: [PATCH 5/5] Comparison bug fix --- app/lib/reporting/differences/hierarchy.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lib/reporting/differences/hierarchy.rb b/app/lib/reporting/differences/hierarchy.rb index f7b133a13..8a426e688 100644 --- a/app/lib/reporting/differences/hierarchy.rb +++ b/app/lib/reporting/differences/hierarchy.rb @@ -89,7 +89,7 @@ def build_row_for(matching) matching_uk_goods_nomenclature_for_comparison = uk_goods_nomenclature_ids_for_comparison[matching] matching_xi_goods_nomenclature_for_comparison = xi_goods_nomenclature_ids_for_comparison[matching] - new_issue = matching_uk_goods_nomenclature_for_comparison.nil? || matching_xi_goods_nomenclature_for_comparison.nil? || matching_uk_goods_nomenclature_for_comparison['Hierarchy'] != matching_xi_goods_nomenclature_for_comparison['Hierarchy'] + new_issue = matching_uk_goods_nomenclature_for_comparison.nil? || matching_xi_goods_nomenclature_for_comparison.nil? || matching_uk_goods_nomenclature_for_comparison['Hierarchy'] == matching_xi_goods_nomenclature_for_comparison['Hierarchy'] [ "#{item_id} (#{pls})",