Spaces:
Sleeping
Sleeping
| @page | |
| @using BakeryErp.Infrastructure.Database | |
| @model ItemsModel | |
| @{ | |
| ViewData["Title"] = "品項管理"; | |
| } | |
| <header class="page-header"> | |
| <div> | |
| <p class="eyebrow">基本資料</p> | |
| <h1>品項管理</h1> | |
| </div> | |
| <a class="button-link" href="/">返回總覽</a> | |
| </header> | |
| @if (!string.IsNullOrWhiteSpace(Model.Message)) { <div class="notice success">@Model.Message</div> } | |
| @if (!string.IsNullOrWhiteSpace(Model.ErrorMessage)) { <div class="notice error">@Model.ErrorMessage</div> } | |
| <section class="form-panel"> | |
| <h2>@(Model.Form.Id == Guid.Empty ? "新增品項" : "編輯品項")</h2> | |
| <form method="post" class="data-form"> | |
| <input type="hidden" asp-for="Form.Id" /> | |
| <div class="field"><label asp-for="Form.Sku">品項代號</label><input asp-for="Form.Sku" /></div> | |
| <div class="field"><label asp-for="Form.Name">品項名稱</label><input asp-for="Form.Name" /></div> | |
| <div class="field"> | |
| <label asp-for="Form.ItemType">類型</label> | |
| <select asp-for="Form.ItemType"> | |
| <option value="@LocalItemType.RawMaterial">原物料</option> | |
| <option value="@LocalItemType.SemiFinished">半成品</option> | |
| <option value="@LocalItemType.FinishedProduct">成品</option> | |
| <option value="@LocalItemType.Packaging">包材</option> | |
| <option value="@LocalItemType.ExpenseSupply">耗材</option> | |
| </select> | |
| </div> | |
| <div class="field"><label asp-for="Form.CategoryName">分類</label><input asp-for="Form.CategoryName" /></div> | |
| <div class="field"><label asp-for="Form.BaseUnit">基本單位</label><input asp-for="Form.BaseUnit" /></div> | |
| <div class="field"><label asp-for="Form.SafetyStockQuantity">安全庫存</label><input asp-for="Form.SafetyStockQuantity" type="number" step="0.01" /></div> | |
| <div class="field"><label asp-for="Form.ShelfLifeDays">效期天數</label><input asp-for="Form.ShelfLifeDays" type="number" min="0" /></div> | |
| <div class="form-actions"> | |
| <button class="primary-button" type="submit" asp-page-handler="Save">儲存品項</button> | |
| <a class="secondary-button" href="/Items">清空表單</a> | |
| </div> | |
| </form> | |
| </section> | |
| <section class="table-panel"> | |
| <div class="section-title"><h2>品項清單</h2><span>@Model.Items.Count 筆</span></div> | |
| <div class="table-wrap"> | |
| <table> | |
| <thead><tr><th>狀態</th><th>代號</th><th>名稱</th><th>類型</th><th>分類</th><th>單位</th><th>安全庫存</th><th>操作</th></tr></thead> | |
| <tbody> | |
| @foreach (var item in Model.Items) | |
| { | |
| <tr class="@(!item.IsActive ? "muted-row" : null)"> | |
| <td><span class="badge @(item.IsActive ? "ok" : "off")">@(item.IsActive ? "啟用" : "停用")</span></td> | |
| <td>@item.Sku</td><td>@item.Name</td><td>@Model.GetItemTypeName(item.ItemType)</td><td>@item.CategoryName</td><td>@item.BaseUnit</td><td>@item.SafetyStockQuantity.ToString("N2")</td> | |
| <td class="row-actions"> | |
| <a class="small-link" href="/Items?editId=@item.Id">編輯</a> | |
| <form method="post"><input type="hidden" name="id" value="@item.Id" /><input type="hidden" name="isActive" value="@((!item.IsActive).ToString().ToLowerInvariant())" /><button class="text-button" type="submit" asp-page-handler="Toggle">@(item.IsActive ? "停用" : "啟用")</button></form> | |
| </td> | |
| </tr> | |
| } | |
| </tbody> | |
| </table> | |
| </div> | |
| </section> | |