mirror of
https://github.com/hargata/lubelog.git
synced 2025-12-10 00:46:08 -06:00
129 lines
8.8 KiB
Plaintext
129 lines
8.8 KiB
Plaintext
@using CarCareTracker.Helper
|
|
@inject IConfigHelper config
|
|
@inject ITranslationHelper translator
|
|
@model TaxRecordInput
|
|
@{
|
|
var isNew = Model.Id == 0;
|
|
var userConfig = config.GetUserConfig(User);
|
|
var userLanguage = userConfig.UserLanguage;
|
|
}
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">@(isNew ? translator.Translate(userLanguage,"Add New Tax Record") : translator.Translate(userLanguage,"Edit Tax Record"))</h5>
|
|
<button type="button" class="btn-close" onclick="hideAddTaxRecordModal()" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<form>
|
|
<div class="form-group">
|
|
<div class="row">
|
|
<div class="col-md-6 col-12">
|
|
<input type="text" id="workAroundInput" style="height:0px; width:0px; display:none;">
|
|
<label for="taxRecordDate">@translator.Translate(userLanguage,"Date")</label>
|
|
<div class="input-group">
|
|
<input type="text" id="taxRecordDate" class="form-control" placeholder="@translator.Translate(userLanguage,"Date tax was paid")" value="@Model.Date">
|
|
<span class="input-group-text"><i class="bi bi-calendar-event"></i></span>
|
|
</div>
|
|
<label for="taxRecordDescription">@translator.Translate(userLanguage,"Description")</label>
|
|
<input type="text" id="taxRecordDescription" class="form-control" placeholder="@translator.Translate(userLanguage,"Description of tax paid(i.e. Registration)")" value="@Model.Description">
|
|
@if (isNew)
|
|
{
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<a onclick="showRecurringReminderSelector('taxRecordDescription')" class="btn btn-link">@translator.Translate(userLanguage, "Select Reminder")</a>
|
|
</div>
|
|
</div>
|
|
}
|
|
<label for="taxRecordCost">@translator.Translate(userLanguage,"Cost")</label>
|
|
<input type="text" inputmode="decimal" id="taxRecordCost" class="form-control" placeholder="@translator.Translate(userLanguage,"Cost of tax paid")" value="@(isNew? "" : Model.Cost)">
|
|
<label for="taxRecordTag">@translator.Translate(userLanguage,"Tags(optional)")</label>
|
|
<select multiple class="form-select" id="taxRecordTag">
|
|
@foreach (string tag in Model.Tags)
|
|
{
|
|
<!option value="@tag">@tag</!option>
|
|
}
|
|
</select>
|
|
@foreach (ExtraField field in Model.ExtraFields)
|
|
{
|
|
var elementId = Guid.NewGuid();
|
|
<div class="extra-field">
|
|
<label for="@elementId">@field.Name</label>
|
|
<input type="text" id="@elementId" class="form-control @(field.IsRequired ? "extra-field-required" : "")" placeholder="@field.Name" value="@field.Value">
|
|
</div>
|
|
}
|
|
</div>
|
|
<div class="col-md-6 col-12">
|
|
<label for="taxRecordNotes">@translator.Translate(userLanguage,"Notes(optional)")<a class="link-underline link-underline-opacity-0" onclick="showLinks(this)"><i class="bi bi-markdown ms-2"></i></a></label>
|
|
<textarea id="taxRecordNotes" class="form-control" rows="5">@Model.Notes</textarea>
|
|
<div class="form-check form-switch">
|
|
<input class="form-check-input" type="checkbox" onChange="enableTaxRecurring()" role="switch" id="taxIsRecurring" checked="@Model.IsRecurring">
|
|
<label class="form-check-label" for="taxIsRecurring">@translator.Translate(userLanguage,"Is Recurring")</label>
|
|
</div>
|
|
<label for="taxRecurringMonth">@translator.Translate(userLanguage,"Month")</label>
|
|
<select class="form-select" onchange="checkCustomMonthIntervalForTax()" id="taxRecurringMonth" @(Model.IsRecurring ? "" : "disabled")>
|
|
<!option value="Other" @(Model.RecurringInterval == ReminderMonthInterval.Other ? "selected" : "")>@(Model.RecurringInterval == ReminderMonthInterval.Other && Model.CustomMonthInterval > 0 ? $"{translator.Translate(userLanguage, "Other")}: {Model.CustomMonthInterval}" : $"{translator.Translate(userLanguage, "Other")}") </!option>
|
|
<!option value="OneMonth" @(Model.RecurringInterval == ReminderMonthInterval.OneMonth ? "selected" : "")>@translator.Translate(userLanguage,"1 Month")</!option>
|
|
<!option value="ThreeMonths" @(Model.RecurringInterval == ReminderMonthInterval.ThreeMonths || isNew ? "selected" : "")>@translator.Translate(userLanguage, "3 Months")</!option>
|
|
<!option value="SixMonths" @(Model.RecurringInterval == ReminderMonthInterval.SixMonths ? "selected" : "")>@translator.Translate(userLanguage, "6 Months")</!option>
|
|
<!option value="OneYear" @(Model.RecurringInterval == ReminderMonthInterval.OneYear ? "selected" : "")>@translator.Translate(userLanguage, "1 Year")</!option>
|
|
<!option value="TwoYears" @(Model.RecurringInterval == ReminderMonthInterval.TwoYears ? "selected" : "")>@translator.Translate(userLanguage, "2 Years")</!option>
|
|
<!option value="ThreeYears" @(Model.RecurringInterval == ReminderMonthInterval.ThreeYears ? "selected" : "")>@translator.Translate(userLanguage, "3 Years")</!option>
|
|
<!option value="FiveYears" @(Model.RecurringInterval == ReminderMonthInterval.FiveYears ? "selected" : "")>@translator.Translate(userLanguage, "5 Years")</!option>
|
|
</select>
|
|
@if (Model.Files.Any())
|
|
{
|
|
<div>
|
|
@await Html.PartialAsync("_UploadedFiles", Model.Files)
|
|
<label for="taxRecordFiles">@translator.Translate(userLanguage,"Upload more documents")</label>
|
|
<input onChange="uploadVehicleFilesAsync(this)" type="file" multiple accept="@config.GetAllowedFileUploadExtensions()" class="form-control-file" id="taxRecordFiles">
|
|
<br /><small class="text-body-secondary">@translator.Translate(userLanguage,"Max File Size: 28.6MB")</small>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
@if (isNew)
|
|
{
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="checkbox" value="" id="addReminderCheck">
|
|
<label class="form-check-label" for="addReminderCheck">
|
|
@translator.Translate(userLanguage,"Add Reminder")
|
|
</label>
|
|
</div>
|
|
}
|
|
<label for="taxRecordFiles">@translator.Translate(userLanguage,"Upload documents(optional)")</label>
|
|
<input onChange="uploadVehicleFilesAsync(this)" type="file" multiple accept="@config.GetAllowedFileUploadExtensions()" class="form-control-file" id="taxRecordFiles">
|
|
<br /><small class="text-body-secondary">@translator.Translate(userLanguage,"Max File Size: 28.6MB")</small>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="modal-footer">
|
|
@if (!isNew)
|
|
{
|
|
<button type="button" class="btn btn-danger" onclick="deleteTaxRecord(@Model.Id)" style="margin-right:auto;">@translator.Translate(userLanguage,"Delete")</button>
|
|
}
|
|
<button type="button" class="btn btn-secondary" onclick="hideAddTaxRecordModal()">@translator.Translate(userLanguage,"Cancel")</button>
|
|
@if (isNew)
|
|
{
|
|
<button type="button" class="btn btn-primary" onclick="saveTaxRecordToVehicle()">@translator.Translate(userLanguage,"Add New Tax Record")</button>
|
|
}
|
|
else if (!isNew)
|
|
{
|
|
<button type="button" class="btn btn-primary" onclick="saveTaxRecordToVehicle(true)">@translator.Translate(userLanguage,"Edit Tax Record")</button>
|
|
}
|
|
</div>
|
|
<script>
|
|
var uploadedFiles = [];
|
|
var customMonthInterval = @Model.CustomMonthInterval;
|
|
var recurringReminderRecordId = 0;
|
|
getUploadedFilesFromModel();
|
|
function getUploadedFilesFromModel() {
|
|
@foreach (UploadedFiles filesUploaded in Model.Files)
|
|
{
|
|
@:uploadedFiles.push({ name: "@filesUploaded.Name", location: "@filesUploaded.Location" });
|
|
}
|
|
}
|
|
function getTaxRecordModelData() {
|
|
return { id: @Model.Id, monthInterval: decodeHTMLEntities('@Model.RecurringInterval.ToString()') }
|
|
}
|
|
</script> |