Add vehicle filtering for fuellog and vehicle service

This commit is contained in:
2015-10-26 10:09:12 -04:00
parent ad0b04695d
commit 9177a8dbb3
10 changed files with 63 additions and 9 deletions
+7 -1
View File
@@ -663,6 +663,10 @@ namespace MileageTraker.Web.DAL
{
fuelLogs = fuelLogs.Where(l => l.Log == null);
}
if (!string.IsNullOrEmpty(query.TagNumber))
{
fuelLogs = fuelLogs.Where(l => l.TagNumber == query.TagNumber);
}
return fuelLogs;
}
@@ -842,8 +846,10 @@ namespace MileageTraker.Web.DAL
var start = new DateTime(query.Year.Value, query.Month.Value, 1);
var monthRange = query.MonthRange.HasValue ? query.MonthRange.Value : 1;
var end = start.AddMonths(monthRange);
vehicleServices = vehicleServices.Where(l => l.InvoiceDate >= start && l.InvoiceDate < end);
vehicleServices = vehicleServices.Where(vs => vs.InvoiceDate >= start && vs.InvoiceDate < end);
}
if (!string.IsNullOrEmpty(query.VehicleId))
vehicleServices = vehicleServices.Where(vs => vs.Vehicle.VehicleId == query.VehicleId);
return vehicleServices;
}
+9
View File
@@ -151,6 +151,8 @@ var matchCountFunc = function() {
} else {
$link.append(" <span class='badge'>0</span>");
}
$link
.append(' <sup><i class="fa fa-clone"></i></sup>');
}
});
};
@@ -233,8 +235,15 @@ function addButtonIcons () {
.prepend('<i class="icon-user icon-white" /> ');
}
function addTargetBlankIcon() {
$("a[target='_blank']:not(:has(i:last-child))")
.append(' <sup><i class="fa fa-clone"></i></sup>');
}
$(function () {
addButtonIcons();
addTargetBlankIcon();
});
// Convert MVC3 WebGrid paging to Bootstrap
@@ -3,5 +3,19 @@ namespace MileageTraker.Web.ViewModels.FuelLog
public class FuelLogQueryViewModel : DateQueryViewModel
{
public bool Unmatched { get; set; }
public string TagNumber { get; set; }
public override string ToString()
{
if (string.IsNullOrEmpty(TagNumber))
return base.ToString();
return base.ToString() + "_" + TagNumber.Replace(' ', '-');
}
public override bool HasParameters()
{
return base.HasParameters() || !string.IsNullOrEmpty(TagNumber);
}
}
}
@@ -22,6 +22,7 @@ namespace MileageTraker.Web.ViewModels.FuelLog
public string Month { get; set; }
public string MonthRange { get; set; }
public bool Unmatched { get; set; }
public string TagNumber { get; set; }
public FuelLogResultsViewModel(
IEnumerable<FuelLogIndexViewModel> fuelLogs,
@@ -34,6 +35,7 @@ namespace MileageTraker.Web.ViewModels.FuelLog
Month = query.Month.HasValue ? query.Month.Value.ToString(CultureInfo.InvariantCulture) : string.Empty;
MonthRange = query.MonthRange.HasValue ? query.MonthRange.Value.ToString(CultureInfo.InvariantCulture) : string.Empty;
Unmatched = query.Unmatched;
TagNumber = query.TagNumber;
}
}
}
@@ -2,5 +2,18 @@ namespace MileageTraker.Web.ViewModels.VehicleService
{
public class VehicleServiceQueryViewModel : DateQueryViewModel
{
public string VehicleId { get; set; }
public override string ToString()
{
if (string.IsNullOrEmpty(VehicleId))
return base.ToString();
return base.ToString() + "_" + VehicleId.Replace(' ', '-');
}
public override bool HasParameters()
{
return base.HasParameters() || !string.IsNullOrEmpty(VehicleId);
}
}
}
@@ -23,6 +23,7 @@ namespace MileageTraker.Web.ViewModels.VehicleService
public string Year { get; set; }
public string Month { get; set; }
public string MonthRange { get; set; }
public string VehicleId { get; set; }
public VehicleServiceResultsViewModel(
IEnumerable<VehicleServiceViewModel> serviceItems,
@@ -36,6 +37,7 @@ namespace MileageTraker.Web.ViewModels.VehicleService
Year = query.Year.HasValue ? query.Year.Value.ToString(CultureInfo.InvariantCulture) : string.Empty;
Month = query.Month.HasValue ? query.Month.Value.ToString(CultureInfo.InvariantCulture) : string.Empty;
MonthRange = query.MonthRange.HasValue ? query.MonthRange.Value.ToString(CultureInfo.InvariantCulture) : string.Empty;
VehicleId = query.VehicleId;
}
}
}
+2 -2
View File
@@ -5,7 +5,7 @@
@{
ViewBag.Title = "Fuel Logs";
var grid = new WebGrid(Model.FuelLogs, rowsPerPage: 45);
var queryParams = new {FiscalYear = Model.Year, Model.Month, Model.Unmatched};
var queryParams = new {FiscalYear = Model.Year, Model.Month, Model.Unmatched, Model.TagNumber};
}
@section Scripts {
@@ -21,7 +21,7 @@
@Html.Partial("_StatusMessage")
<div class="btn-toolbar pull-right" style="width:400px">
<div class="btn-toolbar pull-right" style="width:600px">
@using (Html.BeginForm("Index", "FuelLog", FormMethod.Get, new { id = "filter", @class = "form" }))
{
@Html.EditorForModel()
@@ -3,7 +3,7 @@
@model MileageTraker.Web.ViewModels.FuelLog.FuelLogResultsViewModel
<div class="row-fluid">
<div class="span3">
<div class="span2">
@Html.Label("Year", "Year")
@Html.DropDownList("Year", new SelectList(Model.AvailableYearMonths.Keys, Model.Year), "Select Year", new { @class = "input-small" })
</div>
@@ -15,7 +15,11 @@
@Html.Label("MonthRange", "Range")
@Html.DropDownList("MonthRange", new SelectList(Enumerable.Range(1,12), Model.MonthRange), new { @class = "input-mini" })
</div>
<div class="span3" >
<div class="span2">
@Html.Label("TagNumber", "Tag Number")
@Html.TextBoxFor(m => m.TagNumber, new {@class="search-query input-mini", placeholder="Vehicle"})
</div>
<div class="span2" >
@Html.Label("Unmatched", "Unmatched Only", new{style = "padding-top:22px"})
<input id="Unmatched" name="Unmatched" type="checkbox" @(Model.Unmatched ? "checked='checked'" : "" ) value="true" />
</div>
@@ -3,11 +3,11 @@
@model MileageTraker.Web.ViewModels.VehicleService.VehicleServiceResultsViewModel
<div class="row-fluid">
<div class="span4">
<div class="span2">
@Html.Label("Year", "Year")
@Html.DropDownList("Year", new SelectList(Model.AvailableYearMonths.Keys, Model.Year), "Select Year", new { @class = "input-small" })
</div>
<div class="span3">
<div class="span2">
@Html.Label("Month", "Month")
@Html.DropDownList("Month", new SelectList(Model.SelectedYearMonths, Model.Month), "All Months", new { @class = "input-small" })
</div>
@@ -15,6 +15,10 @@
@Html.Label("MonthRange", "Range")
@Html.DropDownList("MonthRange", new SelectList(Enumerable.Range(1,12), Model.MonthRange), new { @class = "input-mini" })
</div>
<div class="span3">
@Html.Label("VehicleId", "Vehicle Id")
@Html.TextBoxFor(m => m.VehicleId, new {@class="search-query input-mini", placeholder="Vehicle"})
</div>
<div class="span2">
<input type="submit" value="Filter" class="btn" style="margin-top:1.75em" />
</div>
+2 -2
View File
@@ -3,7 +3,7 @@
@{
ViewBag.Title = "Vehicle Service";
var grid = new WebGrid(Model.ServiceItems, rowsPerPage: 45);
var queryParams = new { Model.Year, Model.Month, Model.MonthRange };
var queryParams = new { Model.Year, Model.Month, Model.MonthRange, Model.VehicleId };
}
@section Scripts {
@@ -19,7 +19,7 @@
@Html.Partial("_StatusMessage")
<div class="btn-toolbar pull-right" style="width:400px">
<div class="btn-toolbar pull-right" style="width:600px">
@using (Html.BeginForm("Index", "VehicleService", FormMethod.Get, new { id = "filter", @class = "form" }))
{
@Html.EditorForModel()