Skip to content

Commit

Permalink
[CPDLP-3521] Address PR comments
Browse files Browse the repository at this point in the history
  • Loading branch information
leandroalemao committed Oct 22, 2024
1 parent e8e98f5 commit 07b008f
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 23 deletions.
32 changes: 21 additions & 11 deletions app/services/migration/migrators/contract.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,26 +48,36 @@ def records_per_worker

def call
migrate(self.class.ecf_contracts) do |ecf_contract|
course_id = find_course_id!(identifier: ecf_contract.course_identifier)

ecf_statements(ecf_contract).find_each do |ecf_statement|
statement_id = find_statement_id!(ecf_id: ecf_statement.id)
ApplicationRecord.transaction do
course_id = find_course_id!(identifier: ecf_contract.course_identifier)

contract_template = ::ContractTemplate.find_or_initialize_by(ecf_id: ecf_contract.id)
contract_template.update!(ecf_contract.attributes.slice(*SHARED_ATTRIBUTES))
unless contract_template.persisted?
contract_template.update!(ecf_contract.attributes.slice(*SHARED_ATTRIBUTES))
end

statements_by_id = ::Statement.where(ecf_id: ecf_statements(ecf_contract).pluck(:id)).index_by(&:id)
statements_by_id.each_key do |statement_id|
contract = ::Contract.find_by(
statement_id:,
course_id:,
)

contract = ::Contract.find_or_initialize_by(
statement_id:,
course_id:,
)
next if contract.present?

contract.update!(contract_template:)
::Contract.create!(
statement_id:,
course_id:,
contract_template:,
)
end
end
end
end

def ecf_statements(ecf_contract)
Migration::Ecf::Finance::Statement.where(
@ecf_statements ||= {}
@ecf_statements["#{ecf_contract.npq_lead_provider.cpd_lead_provider},#{ecf_contract.cohort},#{ecf_contract.version}"] ||= Migration::Ecf::Finance::Statement.where(
cpd_lead_provider: ecf_contract.npq_lead_provider.cpd_lead_provider,
cohort: ecf_contract.cohort,
contract_version: ecf_contract.version,
Expand Down
14 changes: 2 additions & 12 deletions spec/services/migration/migrators/contract_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,26 +28,16 @@ def create_ecf_resource
end

def create_npq_resource(ecf_resource)
create(:course, identifier: ecf_resource.course_identifier)
lead_provider = create(:lead_provider, ecf_id: ecf_resource.npq_lead_provider.id)
cohort = create(:cohort, start_year: ecf_resource.cohort.start_year)
course = create(:course, identifier: ecf_resource.course_identifier)
ecf_statement = Migration::Ecf::Finance::Statement.where(cpd_lead_provider: ecf_resource.npq_lead_provider.cpd_lead_provider).first!
statement = create(
create(
:statement,
ecf_id: ecf_statement.id,
lead_provider:,
cohort:,
)
contract_template = create(
:contract_template,
ecf_id: ecf_resource.id,
)
create(
:contract,
statement:,
course:,
contract_template:,
)
end

def setup_failure_state
Expand Down

0 comments on commit 07b008f

Please sign in to comment.