Driver Mileage export
This commit is contained in:
@@ -76,13 +76,11 @@ namespace MileageTraker.Web.Controllers
|
|||||||
return View(report);
|
return View(report);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult ExportMonthlyVehicleMileage(LogQueryViewModel query)
|
public ActionResult ExportVehicleMileageReport(LogQueryViewModel query)
|
||||||
{
|
{
|
||||||
var items = DataService.GetMonthlyVehicleMileageItems(query);
|
var items = DataService.GetMonthlyVehicleMileageItems(query);
|
||||||
|
|
||||||
//var report = new VehicleMileageViewModel(items, query);
|
var name = string.Format("VehicleMileageReport_{0}", query);
|
||||||
|
|
||||||
var name = string.Format("MonthlyVehicleMileage_{0}", query);
|
|
||||||
|
|
||||||
var export = ExcelWriter<VehicleMileageItem>.WriteXls(items, name, name);
|
var export = ExcelWriter<VehicleMileageItem>.WriteXls(items, name, name);
|
||||||
|
|
||||||
@@ -99,6 +97,20 @@ namespace MileageTraker.Web.Controllers
|
|||||||
return View(report);
|
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)
|
public ViewResult Details(int id)
|
||||||
{
|
{
|
||||||
var log = DataService.GetLog(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); }
|
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;
|
Items = items;
|
||||||
Query = query;
|
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>
|
<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)
|
@Html.DisplayFor(m => m.Query)
|
||||||
|
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<h2><i class="fa fa-road"></i> @ViewBag.Title</h2>
|
<h2><i class="fa fa-road"></i> @ViewBag.Title</h2>
|
||||||
|
|
||||||
<div class="btn-toolbar clearfix">
|
<div class="btn-toolbar clearfix">
|
||||||
@Html.ActionLink("Export", "ExportMonthlyVehicleMileage", Model.Query, new { @class = "btn" })
|
@Html.ActionLink("Export", "ExportVehicleMileageReport", Model.Query, new { @class = "btn" })
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@Html.DisplayFor(m => m.Query)
|
@Html.DisplayFor(m => m.Query)
|
||||||
|
|||||||
@@ -146,6 +146,7 @@
|
|||||||
<Compile Include="Controllers\AccountController.cs" />
|
<Compile Include="Controllers\AccountController.cs" />
|
||||||
<Compile Include="Controllers\CityController.cs" />
|
<Compile Include="Controllers\CityController.cs" />
|
||||||
<Compile Include="Controllers\ControllerBase.cs" />
|
<Compile Include="Controllers\ControllerBase.cs" />
|
||||||
|
<Compile Include="ViewModels\DriverMileageFlattenedViewModel.cs" />
|
||||||
<Compile Include="ViewModels\VehicleService\UpdateServiceRemindersViewModel.cs" />
|
<Compile Include="ViewModels\VehicleService\UpdateServiceRemindersViewModel.cs" />
|
||||||
<Compile Include="Controllers\FuelLogController.cs" />
|
<Compile Include="Controllers\FuelLogController.cs" />
|
||||||
<Compile Include="Controllers\ServiceReminderController.cs" />
|
<Compile Include="Controllers\ServiceReminderController.cs" />
|
||||||
|
|||||||
Reference in New Issue
Block a user