mirror of
https://github.com/rickbarrette/redmine_qbo_vehicles.git
synced 2026-08-18 21:20:43 -04:00
Add last service date and mileage methods to Vehicle model and update views
This commit is contained in:
@@ -33,6 +33,23 @@ class Vehicle < ApplicationRecord
|
||||
issues.includes(:invoices).flat_map(&:invoices).uniq.compact
|
||||
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)
|
||||
super(val.to_s.strip)
|
||||
end
|
||||
|
||||
@@ -49,16 +49,15 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% last = vehicle.issues.last %>
|
||||
<% if last %>
|
||||
<% mileage = last.custom_values.find_by(custom_field_id: CustomField.find_by_name("Mileage").id) %>
|
||||
<% if mileage %>
|
||||
<%
|
||||
mileage = vehicle.last_service_mileage
|
||||
%>
|
||||
|
||||
<% if mileage %>
|
||||
<p>
|
||||
<b><%=t(:label_last_service) %></b> <%= last&.closed_on&.to_date || l(:label_unknown) %>
|
||||
at <%= mileage.value %>
|
||||
<%=t(:label_miles) %>
|
||||
<b><%= t(:label_last_service) %></b> <%= vehicle.last_service_date %>
|
||||
at <%= mileage %> <%= t(:label_miles) %>
|
||||
</p>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<div style="float: right;">
|
||||
|
||||
@@ -21,10 +21,22 @@
|
||||
<% if show_customer %>
|
||||
<%= vehicle.customer %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%
|
||||
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>
|
||||
<br/>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user