You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							224 lines
						
					
					
						
							5.8 KiB
						
					
					
				
			
		
		
	
	
							224 lines
						
					
					
						
							5.8 KiB
						
					
					
				FactoryBot.define do | 
						|
  factory :lettings_log do | 
						|
    assigned_to { association :user } | 
						|
    created_by { assigned_to } | 
						|
    owning_organisation { assigned_to.organisation } | 
						|
    managing_organisation { assigned_to.organisation } | 
						|
    created_at { Time.zone.today } | 
						|
    updated_at { Time.zone.today } | 
						|
 | 
						|
    before(:create) do |log, _evaluator| | 
						|
      if log.period && !log.managing_organisation.organisation_rent_periods.exists?(rent_period: log.period) | 
						|
        log.managing_organisation.organisation_rent_periods << build(:organisation_rent_period, rent_period: log.period) | 
						|
      end | 
						|
    end | 
						|
 | 
						|
    trait :setup_completed do | 
						|
      startdate_today | 
						|
      renewal { 0 } | 
						|
      needstype { 1 } | 
						|
      rent_type { 1 } | 
						|
      declaration { 1 } | 
						|
    end | 
						|
    trait :in_progress do | 
						|
      setup_completed | 
						|
      status { 1 } | 
						|
      tenancycode { Faker::Name.initials(number: 10) } | 
						|
      postcode_full { Faker::Address.postcode } | 
						|
      ppostcode_full { Faker::Address.postcode } | 
						|
      hhmemb { 2 } | 
						|
      age1 { 17 } | 
						|
      age2 { 19 } | 
						|
    end | 
						|
    trait :duplicate do | 
						|
      setup_completed | 
						|
      status { 1 } | 
						|
      tenancycode { "same tenancy code" } | 
						|
      postcode_full { "A1 1AA" } | 
						|
      uprn_known { 0 } | 
						|
      declaration { 1 } | 
						|
      age1_known { 0 } | 
						|
      age1 { 18 } | 
						|
      sex1 { "M" } | 
						|
      hhmemb { 1 } | 
						|
      ecstat1 { 0 } | 
						|
      period { 2 } | 
						|
      brent { 200 } | 
						|
      scharge { 50 } | 
						|
      pscharge { 40 } | 
						|
      supcharg { 35 } | 
						|
      tcharge { 325 } | 
						|
      propcode { "same property code" } | 
						|
      startdate { Time.zone.today } | 
						|
    end | 
						|
    trait :completed do | 
						|
      startdate { Time.zone.today } | 
						|
      status { 2 } | 
						|
      tenancycode { Faker::Name.initials(number: 10) } | 
						|
      age1_known { 0 } | 
						|
      age1 { 35 } | 
						|
      sex1 { "F" } | 
						|
      ethnic_group { 0 } | 
						|
      ethnic { 2 } | 
						|
      national { 13 } | 
						|
      prevten { 6 } | 
						|
      ecstat1 { 0 } | 
						|
      hhmemb { 2 } | 
						|
      relat2 { "P" } | 
						|
      age2_known { 0 } | 
						|
      details_known_2 { 0 } | 
						|
      age2 { 32 } | 
						|
      sex2 { "M" } | 
						|
      ecstat2 { 6 } | 
						|
      homeless { 1 } | 
						|
      underoccupation_benefitcap { 0 } | 
						|
      leftreg { 4 } | 
						|
      reservist { 1 } | 
						|
      illness { 1 } | 
						|
      preg_occ { 2 } | 
						|
      startertenancy { 1 } | 
						|
      tenancylength { 2 } | 
						|
      tenancy { 4 } | 
						|
      ppostcode_full { Faker::Address.postcode } | 
						|
      rsnvac { 6 } | 
						|
      unittype_gn { 7 } | 
						|
      beds { 3 } | 
						|
      voiddate { startdate - 2.days } | 
						|
      offered { 2 } | 
						|
      wchair { 1 } | 
						|
      earnings { 268 } | 
						|
      incfreq { 1 } | 
						|
      benefits { 1 } | 
						|
      period { 2 } | 
						|
      brent { 200 } | 
						|
      scharge { 50 } | 
						|
      pscharge { 40 } | 
						|
      supcharg { 35 } | 
						|
      tcharge { 325 } | 
						|
      layear { 2 } | 
						|
      waityear { 7 } | 
						|
      postcode_known { 1 } | 
						|
      postcode_full { "SW1A 1AA" } | 
						|
      reasonpref { 1 } | 
						|
      cbl { 0 } | 
						|
      chr { 1 } | 
						|
      cap { 0 } | 
						|
      accessible_register { 0 } | 
						|
      reasonother { nil } | 
						|
      housingneeds { 1 } | 
						|
      housingneeds_type { 0 } | 
						|
      housingneeds_other { 0 } | 
						|
      housingneeds_a { 1 } | 
						|
      housingneeds_b { 0 } | 
						|
      housingneeds_c { 0 } | 
						|
      housingneeds_f { 0 } | 
						|
      housingneeds_g { 0 } | 
						|
      housingneeds_h { 0 } | 
						|
      illness_type_1 { 0 } | 
						|
      illness_type_2 { 1 } | 
						|
      illness_type_3 { 0 } | 
						|
      illness_type_4 { 0 } | 
						|
      illness_type_8 { 0 } | 
						|
      illness_type_5 { 0 } | 
						|
      illness_type_6 { 0 } | 
						|
      illness_type_7 { 0 } | 
						|
      illness_type_9 { 0 } | 
						|
      illness_type_10 { 0 } | 
						|
      rp_homeless { 0 } | 
						|
      rp_insan_unsat { 1 } | 
						|
      rp_medwel { 0 } | 
						|
      rp_hardship { 0 } | 
						|
      rp_dontknow { 0 } | 
						|
      tenancyother { nil } | 
						|
      net_income_value_check { nil } | 
						|
      void_date_value_check { 1 } | 
						|
      major_repairs_date_value_check { 1 } | 
						|
      net_income_known { 0 } | 
						|
      previous_la_known { 1 } | 
						|
      property_owner_organisation { "Test" } | 
						|
      property_manager_organisation { "Test" } | 
						|
      renewal { 0 } | 
						|
      rent_type { 1 } | 
						|
      needstype { 1 } | 
						|
      purchaser_code { 798_794 } | 
						|
      reason { 4 } | 
						|
      propcode { Faker::Name.initials(number: 10) } | 
						|
      majorrepairs { 1 } | 
						|
      la { "E09000003" } | 
						|
      prevloc { "E07000105" } | 
						|
      hb { 6 } | 
						|
      hbrentshortfall { 1 } | 
						|
      tshortfall { 12 } | 
						|
      property_relet { 0 } | 
						|
      mrcdate { startdate - 1.day } | 
						|
      incref { 0 } | 
						|
      armedforces { 1 } | 
						|
      builtype { 1 } | 
						|
      unitletas { 2 } | 
						|
      has_benefits { 1 } | 
						|
      is_carehome { 0 } | 
						|
      declaration { 1 } | 
						|
      first_time_property_let_as_social_housing { 0 } | 
						|
      referral { 2 } | 
						|
      uprn_known { 0 } | 
						|
      joint { 3 } | 
						|
      address_line1 { "Address line 1" } | 
						|
      town_or_city { "London" } | 
						|
      ppcodenk { 1 } | 
						|
      tshortfall_known { 1 } | 
						|
      after(:build) do |log, _evaluator| | 
						|
        if log.startdate >= Time.zone.local(2024, 4, 1) | 
						|
          log.address_line1_input = log.address_line1 | 
						|
          log.postcode_full_input = log.postcode_full | 
						|
          log.nationality_all_group = 826 | 
						|
          log.uprn = "10033558653" | 
						|
          log.uprn_selection = 1 | 
						|
        end | 
						|
      end | 
						|
    end | 
						|
    trait :export do | 
						|
      tenancycode { "987654" } | 
						|
      ppostcode_full { "LE5 1QP" } | 
						|
      propcode { "MYPROP" } | 
						|
      tenancylength { nil } | 
						|
    end | 
						|
    trait :sh do | 
						|
      needstype { 2 } | 
						|
      sheltered { 3 } | 
						|
      household_charge { 0 } | 
						|
    end | 
						|
    trait :sheltered_housing do | 
						|
      needstype { 2 } | 
						|
    end | 
						|
    trait :startdate_today do | 
						|
      startdate { Time.zone.today } | 
						|
    end | 
						|
    trait :deleted do | 
						|
      status { 4 } | 
						|
      discarded_at { Time.zone.now } | 
						|
    end | 
						|
    trait :imported do | 
						|
      old_id { Random.hex } | 
						|
    end | 
						|
    trait :with_illness_without_type do | 
						|
      illness { 1 } | 
						|
      illness_type_1 { false } | 
						|
      illness_type_2 { false } | 
						|
      illness_type_3 { false } | 
						|
      illness_type_4 { false } | 
						|
      illness_type_5 { false } | 
						|
      illness_type_6 { false } | 
						|
      illness_type_7 { false } | 
						|
      illness_type_8 { false } | 
						|
      illness_type_9 { false } | 
						|
      illness_type_10 { false } | 
						|
    end | 
						|
    trait :ignore_validation_errors do | 
						|
      to_create do |instance| | 
						|
        instance.valid? | 
						|
        instance.errors.clear | 
						|
        instance.save!(validate: false) | 
						|
      end | 
						|
    end | 
						|
  end | 
						|
end
 | 
						|
 |