mirror of
https://github.com/hargata/lubelog.git
synced 2026-02-03 17:53:02 -06:00
add missing record types to attachment export
This commit is contained in:
parent
21384f2213
commit
4509eff284
@ -577,6 +577,24 @@ namespace CarCareTracker.Controllers
|
||||
}
|
||||
return PartialView("_VehicleSelector", vehiclesStored);
|
||||
}
|
||||
public ActionResult GetVehicleSelectorOdometer(int vehicleId)
|
||||
{
|
||||
var vehiclesStored = _dataAccess.GetVehicles();
|
||||
if (!User.IsInRole(nameof(UserData.IsRootUser)))
|
||||
{
|
||||
vehiclesStored = _userLogic.FilterUserVehicles(vehiclesStored, GetUserID());
|
||||
}
|
||||
if (vehicleId != default)
|
||||
{
|
||||
vehiclesStored.RemoveAll(x => x.Id == vehicleId);
|
||||
}
|
||||
var userConfig = _config.GetUserConfig(User);
|
||||
if (userConfig.HideSoldVehicles)
|
||||
{
|
||||
vehiclesStored.RemoveAll(x => !string.IsNullOrWhiteSpace(x.SoldDate));
|
||||
}
|
||||
return PartialView("_VehicleSelectorOdometer", vehiclesStored);
|
||||
}
|
||||
[Authorize(Roles = nameof(UserData.IsRootUser))]
|
||||
[HttpGet]
|
||||
public IActionResult GetCustomWidgetEditor()
|
||||
|
||||
@ -431,6 +431,50 @@ namespace CarCareTracker.Controllers
|
||||
Files = x.Files
|
||||
}));
|
||||
}
|
||||
if (exportTabs.Contains(ImportMode.PlanRecord))
|
||||
{
|
||||
var records = _planRecordDataAccess.GetPlanRecordsByVehicleId(vehicleId).Where(x => x.Files.Any());
|
||||
attachmentData.AddRange(records.Select(x => new GenericReportModel
|
||||
{
|
||||
DataType = ImportMode.PlanRecord,
|
||||
Date = x.DateCreated,
|
||||
Odometer = 0,
|
||||
Files = x.Files
|
||||
}));
|
||||
}
|
||||
if (exportTabs.Contains(ImportMode.SupplyRecord))
|
||||
{
|
||||
var records = _supplyRecordDataAccess.GetSupplyRecordsByVehicleId(vehicleId).Where(x => x.Files.Any());
|
||||
attachmentData.AddRange(records.Select(x => new GenericReportModel
|
||||
{
|
||||
DataType = ImportMode.SupplyRecord,
|
||||
Date = x.Date,
|
||||
Odometer = 0,
|
||||
Files = x.Files
|
||||
}));
|
||||
}
|
||||
if (exportTabs.Contains(ImportMode.InspectionRecord))
|
||||
{
|
||||
var records = _inspectionRecordDataAccess.GetInspectionRecordsByVehicleId(vehicleId).Where(x => x.Files.Any());
|
||||
attachmentData.AddRange(records.Select(x => new GenericReportModel
|
||||
{
|
||||
DataType = ImportMode.InspectionRecord,
|
||||
Date = x.Date,
|
||||
Odometer = x.Mileage,
|
||||
Files = x.Files
|
||||
}));
|
||||
}
|
||||
if (exportTabs.Contains(ImportMode.EquipmentRecord))
|
||||
{
|
||||
var records = _equipmentRecordDataAccess.GetEquipmentRecordsByVehicleId(vehicleId).Where(x => x.Files.Any());
|
||||
attachmentData.AddRange(records.Select(x => new GenericReportModel
|
||||
{
|
||||
DataType = ImportMode.EquipmentRecord,
|
||||
Date = DateTime.Now,
|
||||
Odometer = 0,
|
||||
Files = x.Files
|
||||
}));
|
||||
}
|
||||
if (attachmentData.Any())
|
||||
{
|
||||
attachmentData = attachmentData.OrderBy(x => x.Date).ThenBy(x => x.Odometer).ToList();
|
||||
@ -782,5 +826,10 @@ namespace CarCareTracker.Controllers
|
||||
var widgets = _fileHelper.GetWidgets();
|
||||
return PartialView("_ReportWidgets", widgets);
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult GetImportModeSelector()
|
||||
{
|
||||
return PartialView("_ImportModeSelector");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
32
Views/Home/_VehicleSelectorOdometer.cshtml
Normal file
32
Views/Home/_VehicleSelectorOdometer.cshtml
Normal file
@ -0,0 +1,32 @@
|
||||
@inject IConfigHelper config
|
||||
@inject ITranslationHelper translator
|
||||
@using CarCareTracker.Helper
|
||||
@model List<Vehicle>
|
||||
|
||||
@{
|
||||
var userLanguage = config.GetUserConfig(User).UserLanguage;
|
||||
}
|
||||
|
||||
@if (Model.Any())
|
||||
{
|
||||
<div id="vehicleSelector">
|
||||
<ul class="list-group">
|
||||
@foreach (Vehicle vehicle in Model)
|
||||
{
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="@vehicle.Id" id="vehicleCheck_@vehicle.Id">
|
||||
<label class="form-check-label stretched-link" for="vehicleCheck_@vehicle.Id">@($"{vehicle.Year} {vehicle.Make} {vehicle.Model} ({StaticHelper.GetVehicleIdentifier(vehicle)})")</label>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="mt-2">
|
||||
<div class="form-check form-check-inline">
|
||||
<input type="checkbox" id="checkShiftOdometer" class="form-check-input me-1" />
|
||||
<label for="checkShiftOdometer" class="form-check-label">@translator.Translate(userLanguage, "Shift Odometer")</label>
|
||||
</div>
|
||||
</div>
|
||||
} else
|
||||
{
|
||||
<div id="vehicleSelector"><span class="lead">@translator.Translate(userLanguage, "No Vehicles Available")</span></div>
|
||||
}
|
||||
56
Views/Vehicle/_ImportModeSelector.cshtml
Normal file
56
Views/Vehicle/_ImportModeSelector.cshtml
Normal file
@ -0,0 +1,56 @@
|
||||
@inject IConfigHelper config
|
||||
@inject ITranslationHelper translator
|
||||
@using CarCareTracker.Helper
|
||||
|
||||
@{
|
||||
var userLanguage = config.GetUserConfig(User).UserLanguage;
|
||||
}
|
||||
|
||||
<div id="attachmentTabs">
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="PlanRecord" id="exportPlanRecord">
|
||||
<label class="form-check-label stretched-link" for="exportPlanRecord">@translator.Translate(userLanguage, "Planner")</label>
|
||||
</li>
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="OdometerRecord" id="exportOdometerRecord">
|
||||
<label class="form-check-label stretched-link" for="exportOdometerRecord">@translator.Translate(userLanguage, "Odometer")</label>
|
||||
</li>
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="ServiceRecord" id="exportServiceRecord">
|
||||
<label class="form-check-label stretched-link" for="exportServiceRecord">@translator.Translate(userLanguage, "Service Records")</label>
|
||||
</li>
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="RepairRecord" id="exportRepairRecord">
|
||||
<label class="form-check-label stretched-link" for="exportRepairRecord">@translator.Translate(userLanguage, "Repairs")</label>
|
||||
</li>
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="UpgradeRecord" id="exportUpgradeRecord">
|
||||
<label class="form-check-label stretched-link" for="exportUpgradeRecord">@translator.Translate(userLanguage, "Upgrades")</label>
|
||||
</li>
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="GasRecord" id="exportGasRecord">
|
||||
<label class="form-check-label stretched-link" for="exportGasRecord">@translator.Translate(userLanguage, "Fuel")</label>
|
||||
</li>
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="SupplyRecord" id="exportSupplyRecord">
|
||||
<label class="form-check-label stretched-link" for="exportSupplyRecord">@translator.Translate(userLanguage, "Supplies")</label>
|
||||
</li>
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="TaxRecord" id="exportTaxRecord">
|
||||
<label class="form-check-label stretched-link" for="exportTaxRecord">@translator.Translate(userLanguage, "Taxes")</label>
|
||||
</li>
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="NoteRecord" id="exportNoteRecord">
|
||||
<label class="form-check-label stretched-link" for="exportNoteRecord">@translator.Translate(userLanguage, "Notes")</label>
|
||||
</li>
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="InspectionRecord" id="exportInspectionRecord">
|
||||
<label class="form-check-label stretched-link" for="exportInspectionRecord">@translator.Translate(userLanguage, "Inspections")</label>
|
||||
</li>
|
||||
<li class="list-group-item text-start">
|
||||
<input class="form-check-input" type="checkbox" value="EquipmentRecord" id="exportEquipmentRecord">
|
||||
<label class="form-check-label stretched-link" for="exportEquipmentRecord">@translator.Translate(userLanguage, "Equipment")</label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
File diff suppressed because one or more lines are too long
@ -404,17 +404,12 @@ function duplicateDistanceToOtherVehicles(ids) {
|
||||
if (ids.length == 0) {
|
||||
return;
|
||||
}
|
||||
$.get(`/Home/GetVehicleSelector?vehicleId=${GetVehicleId().vehicleId}`, function (data) {
|
||||
$.get(`/Home/GetVehicleSelectorOdometer?vehicleId=${GetVehicleId().vehicleId}`, function (data) {
|
||||
if (data) {
|
||||
let appendHtml = data + `<div class='mt-2'>
|
||||
<div class='form-check form-check-inline'>
|
||||
<input type="checkbox" id="checkShiftOdometer" class="form-check-input me-1">
|
||||
<label for="checkShiftOdometer" class='form-check-label'>Shift Odometer</label>
|
||||
</div>`
|
||||
//prompt user to select a vehicle
|
||||
Swal.fire({
|
||||
title: 'Duplicate Distance to Vehicle(s)',
|
||||
html: appendHtml,
|
||||
html: data,
|
||||
confirmButtonText: 'Duplicate',
|
||||
focusConfirm: false,
|
||||
preConfirm: () => {
|
||||
|
||||
@ -321,64 +321,35 @@ function refreshCollaborators() {
|
||||
});
|
||||
}
|
||||
function exportAttachments() {
|
||||
Swal.fire({
|
||||
title: 'Export Attachments',
|
||||
html: `
|
||||
<div id='attachmentTabs'>
|
||||
<div class='form-check form-check-inline'>
|
||||
<input type="checkbox" id="exportServiceRecord" class="form-check-input me-1" value='ServiceRecord'>
|
||||
<label for="exportServiceRecord" class='form-check-label'>Service Record</label>
|
||||
</div>
|
||||
<div class='form-check form-check-inline'>
|
||||
<input type="checkbox" id="exportRepairRecord" class="form-check-input me-1" value='RepairRecord'>
|
||||
<label for="exportRepairRecord" class='form-check-label'>Repairs</label>
|
||||
</div>
|
||||
<div class='form-check form-check-inline'>
|
||||
<input type="checkbox" id="exportUpgradeRecord" class="form-check-input me-1" value='UpgradeRecord'>
|
||||
<label for="exportUpgradeRecord" class='form-check-label'>Upgrades</label>
|
||||
</div>
|
||||
<div class='form-check form-check-inline'>
|
||||
<input type="checkbox" id="exportGasRecord" class="form-check-input me-1" value='GasRecord'>
|
||||
<label for="exportGasRecord" class='form-check-label'>Fuel</label>
|
||||
</div>
|
||||
<div class='form-check form-check-inline'>
|
||||
<input type="checkbox" id="exportTaxRecord" class="form-check-input me-1" value='TaxRecord'>
|
||||
<label for="exportTaxRecord" class='form-check-label'>Taxes</label>
|
||||
</div>
|
||||
<div class='form-check form-check-inline'>
|
||||
<input type="checkbox" id="exportOdometerRecord" class="form-check-input me-1" value='OdometerRecord'>
|
||||
<label for="exportOdometerRecord" class='form-check-label'>Odometer</label>
|
||||
</div>
|
||||
<div class='form-check form-check-inline'>
|
||||
<input type="checkbox" id="exportNoteRecord" class="form-check-input me-1" value='NoteRecord'>
|
||||
<label for="exportNoteRecord" class='form-check-label'>Notes</label>
|
||||
</div>
|
||||
</div>
|
||||
`,
|
||||
confirmButtonText: 'Export',
|
||||
showCancelButton: true,
|
||||
focusConfirm: false,
|
||||
preConfirm: () => {
|
||||
var selectedExportTabs = $("#attachmentTabs :checked").map(function () {
|
||||
return this.value;
|
||||
});
|
||||
if (selectedExportTabs.toArray().length == 0) {
|
||||
Swal.showValidationMessage(`Please make at least one selection`)
|
||||
}
|
||||
return { selectedTabs: selectedExportTabs.toArray() }
|
||||
},
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
var vehicleId = GetVehicleId().vehicleId;
|
||||
$.post('/Vehicle/GetVehicleAttachments', { vehicleId: vehicleId, exportTabs: result.value.selectedTabs }, function (data) {
|
||||
if (data.success) {
|
||||
window.location.href = data.message;
|
||||
} else {
|
||||
errorToast(data.message);
|
||||
$.get(`/Vehicle/GetImportModeSelector?vehicleId=${GetVehicleId().vehicleId}`, function (selectorData) {
|
||||
Swal.fire({
|
||||
title: 'Export Attachments',
|
||||
html: selectorData,
|
||||
confirmButtonText: 'Export',
|
||||
showCancelButton: true,
|
||||
focusConfirm: false,
|
||||
preConfirm: () => {
|
||||
var selectedExportTabs = $("#attachmentTabs :checked").map(function () {
|
||||
return this.value;
|
||||
});
|
||||
if (selectedExportTabs.toArray().length == 0) {
|
||||
Swal.showValidationMessage(`Please make at least one selection`)
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
return { selectedTabs: selectedExportTabs.toArray() }
|
||||
},
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
var vehicleId = GetVehicleId().vehicleId;
|
||||
$.post('/Vehicle/GetVehicleAttachments', { vehicleId: vehicleId, exportTabs: result.value.selectedTabs }, function (data) {
|
||||
if (data.success) {
|
||||
window.location.href = data.message;
|
||||
} else {
|
||||
errorToast(data.message);
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
function showDataTable(elemClicked) {
|
||||
var vehicleId = GetVehicleId().vehicleId;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user