Driver Mileage export
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,5 +18,10 @@ namespace MileageTraker.Web.ViewModels
|
||||
Items = items;
|
||||
Query = query;
|
||||
}
|
||||
|
||||
public IEnumerable<DriverMileageFlattenedViewModel> Flatten()
|
||||
{
|
||||
return Items.SelectMany(i => i.Flatten());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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">
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user