91 lines
4.1 KiB
Plaintext
91 lines
4.1 KiB
Plaintext
@model PowderCoating.Web.ViewModels.Reports.PowderConsumptionViewModel
|
|
@{ ViewData["Title"] = "Powder Consumption vs Purchase"; }
|
|
|
|
<partial name="_ReportHeader" model="Model" />
|
|
|
|
<div class="row g-3 mb-3">
|
|
<div class="col-sm-4">
|
|
<div class="card text-bg-primary">
|
|
<div class="card-body py-2">
|
|
<div class="small">Total Purchased</div>
|
|
<div class="fs-5 fw-bold">@Model.TotalPurchasedLbs.ToString("N1") lbs</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="card text-bg-success">
|
|
<div class="card-body py-2">
|
|
<div class="small">Total Consumed</div>
|
|
<div class="fs-5 fw-bold">@Model.TotalConsumedLbs.ToString("N1") lbs</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4">
|
|
<div class="card @(Model.TotalPurchasedLbs - Model.TotalConsumedLbs >= 0 ? "text-bg-info" : "text-bg-warning")">
|
|
<div class="card-body py-2">
|
|
<div class="small">Net Variance</div>
|
|
<div class="fs-5 fw-bold">@((Model.TotalPurchasedLbs - Model.TotalConsumedLbs).ToString("N1")) lbs</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="card-header fw-semibold">Purchased vs Consumed per SKU</div>
|
|
<div class="card-body p-0">
|
|
<div class="table-responsive">
|
|
<table class="table table-sm table-hover mb-0">
|
|
<thead class="table-light">
|
|
<tr>
|
|
<th>Item / SKU</th>
|
|
<th>Color</th>
|
|
<th>Manufacturer</th>
|
|
<th class="text-end">Purchased (lbs)</th>
|
|
<th class="text-end">Consumed (lbs)</th>
|
|
<th class="text-end">Variance (lbs)</th>
|
|
<th class="text-end">Purchases</th>
|
|
<th class="text-end">Jobs Used</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var item in Model.Items)
|
|
{
|
|
var varianceClass = item.VarianceLbs < 0 ? "text-danger" : item.VarianceLbs == 0 ? "" : "text-success";
|
|
<tr>
|
|
<td>
|
|
<div class="fw-semibold">@item.ItemName</div>
|
|
@if (!string.IsNullOrEmpty(item.SKU))
|
|
{
|
|
<div class="small text-muted">@item.SKU</div>
|
|
}
|
|
</td>
|
|
<td>
|
|
@(item.ColorName ?? "—")
|
|
@if (!string.IsNullOrEmpty(item.ColorCode))
|
|
{
|
|
<span class="badge bg-secondary-subtle text-secondary ms-1">@item.ColorCode</span>
|
|
}
|
|
</td>
|
|
<td class="text-muted">@(item.Manufacturer ?? "—")</td>
|
|
<td class="text-end">@item.TotalPurchasedLbs.ToString("N1")</td>
|
|
<td class="text-end">@item.TotalConsumedLbs.ToString("N1")</td>
|
|
<td class="text-end fw-semibold @varianceClass">@item.VarianceLbs.ToString("N1")</td>
|
|
<td class="text-end">@item.PurchaseCount</td>
|
|
<td class="text-end">@item.UsageJobCount</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
<tfoot class="table-light fw-bold">
|
|
<tr>
|
|
<td colspan="3">Totals</td>
|
|
<td class="text-end">@Model.TotalPurchasedLbs.ToString("N1")</td>
|
|
<td class="text-end">@Model.TotalConsumedLbs.ToString("N1")</td>
|
|
<td class="text-end">@((Model.TotalPurchasedLbs - Model.TotalConsumedLbs).ToString("N1"))</td>
|
|
<td colspan="2"></td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|