slovensko-digital/harvester.ecosystem

View on GitHub
app/jobs/itms/sync_accounts_receivable_document_job.rb

Summary

Maintainability
A
1 hr
Test Coverage
A
100%
class Itms::SyncAccountsReceivableDocumentJob < ItmsJob
  def perform(itms_href, downloader: ItmsJob::Downloader)
    json = downloader.get_json_from_href(itms_href)

    ActiveRecord::Base.transaction do
      ard = Itms::AccountsReceivableDocument.find_or_create_by!(itms_id: json['id'])
      ard.itms_href = json['href']
      ard.itms_created_at = json['createdAt']
      ard.itms_updated_at = json['updatedAt']

      ard.datum_splatnosti = json['datumSplatnosti']
      ard.datum_vzniku = json['datumVzniku']
      ard.dlznik = find_or_create_subject_by_json(json['dlznik'], downloader)
      ard.dopad_na_rozpocet_eu = json['dopadNaRozpocetEU']
      ard.dovod_vratenia = find_or_create_codelist_value_by_json(json['dovodVratenia'], downloader)
      ard.druh = json['druh']
      ard.kod = json['kod']
      ard.konkretny_ciel = find_or_create_specific_goal_by_json(json['konkretnyCiel'], downloader)
      ard.nezrovnalost = find_or_create_discrepancy_by_json(json['nezrovnalost'], downloader)
      ard.prioritna_os = find_or_create_priority_axis_by_json(json['prioritnaOs'], downloader)
      ard.projekt = find_or_create_project_by_json(json['projekt'], downloader)
      ard.stav = json['stav']
      ard.subjekt_zodpovedny_za_vymahanie = find_or_create_subject_by_json(json['subjektZodpovednyZaVymahanie'], downloader)
      ard.suma_na_vratenie = json['sumaNaVratenie']
      ard.suma_na_vratenie_zdroj_eu = json['sumaNaVratenieZdrojEU']
      ard.suma_na_vratenie_zdroj_pr = json['sumaNaVratenieZdrojPR']
      ard.suma_na_vratenie_zdroj_sr = json['sumaNaVratenieZdrojSR']
      ard.suvisiace_verejne_obstaravania = find_or_create_procurements_by_json(json['suvisiaceVerejneObstaravania'], downloader)
      ard.suvisiace_zop = find_or_create_payment_claims_by_json(json['suvisiaceZop'], downloader)
      ard.typ = json['typ']
      ard.vracia_sa_do_rozpoctu_projektu = json['vraciaSaDoRozpoctuProjektu']
      ard.vratena_suma = json['vratenaSuma']
      ard.vratena_suma_zdroj_eu = json['vratenaSumaZdrojEU']
      ard.vratena_suma_zdroj_pr = json['vratenaSumaZdrojPR']
      ard.vratena_suma_zdroj_sr = json['vratenaSumaZdrojSR']

      ard.save!
    end
  end
end