Initial commit

This commit is contained in:
2026-04-23 21:38:24 -04:00
commit 63e12a9636
1762 changed files with 1672620 additions and 0 deletions
@@ -0,0 +1,76 @@
@using PowderCoating.Application.DTOs.Wizard
@model WizardStep4Dto
@{
ViewData["Title"] = "Setup Wizard — Payment Terms";
var progress = ViewBag.Progress as WizardProgressDto ?? new WizardProgressDto();
int step = ViewBag.Step as int? ?? 7;
}
@section Styles { @await Html.PartialAsync("_WizardStyles") }
<div class="wizard-layout">
@await Html.PartialAsync("_WizardProgress", progress)
<div class="wizard-content">
<div class="wizard-step-header">
<span class="wizard-step-badge">Step @step of @WizardProgressDto.TotalSteps</span>
<h2><i class="bi bi-file-earmark-text me-2"></i>Payment Terms &amp; Quote Defaults</h2>
<p class="text-secondary">Set the default terms that appear on your quotes and invoices. These can always be overridden per document.</p>
</div>
<form asp-action="PostStep7" method="post">
@Html.AntiForgeryToken()
<div class="wizard-card">
<h5 class="wizard-card-title">Payment &amp; Turnaround Defaults</h5>
<div class="row g-3">
<div class="col-md-4">
<label asp-for="DefaultPaymentTerms" class="form-label fw-semibold"></label>
<input asp-for="DefaultPaymentTerms" class="form-control" placeholder="Net 30" />
<div class="form-text">Appears on quotes and invoices (e.g. Net 30, Due on Receipt).</div>
<span asp-validation-for="DefaultPaymentTerms" class="text-danger small"></span>
</div>
<div class="col-md-4">
<label asp-for="DefaultQuoteValidityDays" class="form-label fw-semibold"></label>
<div class="input-group">
<input asp-for="DefaultQuoteValidityDays" class="form-control" type="number" min="1" max="365" />
<span class="input-group-text">days</span>
</div>
<div class="form-text">How long a quote remains valid before it expires.</div>
<span asp-validation-for="DefaultQuoteValidityDays" class="text-danger small"></span>
</div>
<div class="col-md-4">
<label asp-for="DefaultTurnaroundDays" class="form-label fw-semibold"></label>
<div class="input-group">
<input asp-for="DefaultTurnaroundDays" class="form-control" type="number" min="1" max="365" />
<span class="input-group-text">days</span>
</div>
<div class="form-text">Default expected completion time for new jobs.</div>
<span asp-validation-for="DefaultTurnaroundDays" class="text-danger small"></span>
</div>
</div>
</div>
<div class="wizard-card">
<h5 class="wizard-card-title">Quote Document Defaults</h5>
<div class="row g-3">
<div class="col-12">
<label asp-for="QtDefaultTerms" class="form-label fw-semibold"></label>
<textarea asp-for="QtDefaultTerms" class="form-control" rows="5"
placeholder="e.g. Payment is due upon completion. Prices valid for 30 days. Customer responsible for prep work unless otherwise noted."></textarea>
<div class="form-text">These terms print in the Terms &amp; Conditions section of every quote PDF.</div>
<span asp-validation-for="QtDefaultTerms" class="text-danger small"></span>
</div>
<div class="col-12">
<label asp-for="QtFooterNote" class="form-label fw-semibold"></label>
<input asp-for="QtFooterNote" class="form-control"
placeholder="e.g. Thank you for your business! Questions? Call us at (555) 123-4567." />
<div class="form-text">A short note that appears at the bottom of quote PDFs.</div>
<span asp-validation-for="QtFooterNote" class="text-danger small"></span>
</div>
</div>
</div>
@await Html.PartialAsync("_WizardFooter", step)
</form>
</div>
</div>