33 lines
876 B
Ruby
33 lines
876 B
Ruby
FactoryBot.define do
|
|
factory :maintenance_entry do
|
|
vehicle
|
|
association :updated_by_user, factory: :user
|
|
name { "Oil Change" }
|
|
notes { "Oil change performed by Fleet Service Center." }
|
|
odometer { 10_500 }
|
|
cost { 89.95 }
|
|
date { Date.current }
|
|
|
|
transient do
|
|
ensure_matching_schedule { true }
|
|
end
|
|
|
|
after(:build) do |maintenance_entry, evaluator|
|
|
next unless evaluator.ensure_matching_schedule
|
|
next if maintenance_entry.vehicle.blank?
|
|
|
|
scheduled = maintenance_entry.vehicle.maintenance_schedules.any? do |schedule|
|
|
schedule.maintenance_type.casecmp?(maintenance_entry.name)
|
|
end
|
|
|
|
next if scheduled
|
|
|
|
maintenance_entry.vehicle.maintenance_schedules.build(
|
|
maintenance_type: maintenance_entry.name,
|
|
mileage_interval: 5_000,
|
|
time_interval: 180
|
|
)
|
|
end
|
|
end
|
|
end
|