Driver Mileage export

This commit is contained in:
2015-10-23 21:40:52 -04:00
parent ad13d9f5b4
commit 1fb8c54076
7 changed files with 55 additions and 5 deletions
+16 -4
View File
@@ -76,13 +76,11 @@ namespace MileageTraker.Web.Controllers
return View(report);
}
public ActionResult ExportMonthlyVehicleMileage(LogQueryViewModel query)
public ActionResult ExportVehicleMileageReport(LogQueryViewModel query)
{
var items = DataService.GetMonthlyVehicleMileageItems(query);
//var report = new VehicleMileageViewModel(items, query);
var name = string.Format("MonthlyVehicleMileage_{0}", query);
var name = string.Format("VehicleMileageReport_{0}", query);
var export = ExcelWriter<VehicleMileageItem>.WriteXls(items, name, name);
@@ -99,6 +97,20 @@ namespace MileageTraker.Web.Controllers
return View(report);
}
public ActionResult ExportDriverMileageReport(LogQueryViewModel query)
{
var items = DataService.GetMonthlyDriverMileageItems(query);
items = items.OrderBy(i => i.DriverName);
var report = new DriverMileageViewModel(items, query);
var flattenedReport = report.Flatten();
var name = string.Format("DriverMileageReport_{0}", query);
var export = ExcelWriter<DriverMileageFlattenedViewModel>.WriteXls(flattenedReport, name, name);
return File(export, "application/ms-excel", name + ".xls");
}
public ViewResult Details(int id)
{
var log = DataService.GetLog(id);
@@ -0,0 +1,23 @@
using System.ComponentModel.DataAnnotations;
using AutoMapper;
using MileageTraker.Web.ViewModels.Vehicle;
namespace MileageTraker.Web.ViewModels
{
public class DriverMileageFlattenedViewModel : VehicleMileageItem
{
[Display(Name = "Driver Name")]
public string DriverName { get; set; }
static DriverMileageFlattenedViewModel()
{
Mapper.CreateMap<VehicleMileageItem, DriverMileageFlattenedViewModel>();
}
public DriverMileageFlattenedViewModel(VehicleMileageItem vehicleMileage, string driverName)
{
Mapper.Map(vehicleMileage, this);
DriverName = driverName;
}
}
}
+5
View File
@@ -23,5 +23,10 @@ namespace MileageTraker.Web.ViewModels
{
get { return VehicleMileageItems.Sum(i => i.TripCount); }
}
public IEnumerable<DriverMileageFlattenedViewModel> Flatten()
{
return VehicleMileageItems.Select(v => new DriverMileageFlattenedViewModel(v, DriverName));
}
}
}
+5
View File
@@ -18,5 +18,10 @@ namespace MileageTraker.Web.ViewModels
Items = items;
Query = query;
}
public IEnumerable<DriverMileageFlattenedViewModel> Flatten()
{
return Items.SelectMany(i => i.Flatten());
}
}
}
+4
View File
@@ -9,6 +9,10 @@
<h2><i class="fa fa-road"></i> @ViewBag.Title</h2>
<div class="btn-toolbar clearfix">
@Html.ActionLink("Export", "ExportDriverMileageReport", Model.Query, new { @class = "btn" })
</div>
@Html.DisplayFor(m => m.Query)
<table class="table">
+1 -1
View File
@@ -10,7 +10,7 @@
<h2><i class="fa fa-road"></i> @ViewBag.Title</h2>
<div class="btn-toolbar clearfix">
@Html.ActionLink("Export", "ExportMonthlyVehicleMileage", Model.Query, new { @class = "btn" })
@Html.ActionLink("Export", "ExportVehicleMileageReport", Model.Query, new { @class = "btn" })
</div>
@Html.DisplayFor(m => m.Query)
+1
View File
@@ -146,6 +146,7 @@
<Compile Include="Controllers\AccountController.cs" />
<Compile Include="Controllers\CityController.cs" />
<Compile Include="Controllers\ControllerBase.cs" />
<Compile Include="ViewModels\DriverMileageFlattenedViewModel.cs" />
<Compile Include="ViewModels\VehicleService\UpdateServiceRemindersViewModel.cs" />
<Compile Include="Controllers\FuelLogController.cs" />
<Compile Include="Controllers\ServiceReminderController.cs" />