Add last service date and mileage methods to Vehicle model and update views

This commit is contained in:
2026-08-11 18:07:43 -04:00
parent fe81cb6ff8
commit 9d101fef38
3 changed files with 39 additions and 11 deletions
+17
View File
@@ -33,6 +33,23 @@ class Vehicle < ApplicationRecord
issues.includes(:invoices).flat_map(&:invoices).uniq.compact issues.includes(:invoices).flat_map(&:invoices).uniq.compact
end end
def last_service
return issues
.joins(:custom_values)
.where(custom_values: { custom_field_id: CustomField.find_by(name: "Mileage")&.id })
.where.not(custom_values: { value: ['', nil] })
.order(created_on: :desc)
.first
end
def last_service_date
return last_service.created_on&.to_date
end
def last_service_mileage
return last_service&.custom_values&.find_by(custom_field_id: CustomField.find_by(name: "Mileage")&.id)&.value.presence
end
def make=(val) def make=(val)
super(val.to_s.strip) super(val.to_s.strip)
end end
+9 -10
View File
@@ -49,16 +49,15 @@
</div> </div>
</div> </div>
<% last = vehicle.issues.last %> <%
<% if last %> mileage = vehicle.last_service_mileage
<% mileage = last.custom_values.find_by(custom_field_id: CustomField.find_by_name("Mileage").id) %> %>
<% if mileage %>
<p> <% if mileage %>
<b><%=t(:label_last_service) %></b> <%= last&.closed_on&.to_date || l(:label_unknown) %> <p>
at <%= mileage.value %> <b><%= t(:label_last_service) %></b> <%= vehicle.last_service_date %>
<%=t(:label_miles) %> at <%= mileage %> <%= t(:label_miles) %>
</p> </p>
<% end %>
<% end %> <% end %>
<div style="float: right;"> <div style="float: right;">
+13 -1
View File
@@ -21,10 +21,22 @@
<% if show_customer %> <% if show_customer %>
<%= vehicle.customer %> <%= vehicle.customer %>
<% end %> <% end %>
<%
mileage = vehicle.last_service_mileage
%>
<% if mileage %>
<br/>
<b><%= t(:label_last_service) %></b> <%= vehicle.last_service_date %>
at <%= mileage %> <%= t(:label_miles) %>
<% end %>
</div> </div>
<br/>
</div> </div>
<br/>
</div> </div>
<% end %> <% end %>