[CLAUDE] Contract: K1 SP-002 danh muc loai HD - ContractCatalogEntries (Mig 70) + seed 86 + CQRS + FE kind-5 x2 app + 8 test
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 6m31s
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 6m31s
Gate: reviewer PASS-WITH-FLAGS 9f (sub-reviewer-gate-k1.md). Xu ly: F4 IncludeInactive mac-dinh-loai (spec K1.c) + test T5b; F7 comment 5-kind; F1 OG-6 doi nhan soat-SAU @PAUSE-2 (seeder skip-if-exists giu sua-tay CRUD qua restart - update-branch co y KHONG co); F3 authz mirror khuon Catalogs, gioi-han khai: 4 policy ContractCatalog.* sinh ra nhung chua endpoint nao tieu thu (display-layer khac API-layer, #82); F6 ten index IX_ giu EF-default (NIT). Suite 598/0 (45D+553I). Mig 70 ap SQL Server that OK. Drift DELTA: MenuKeys.All 55->56, policies 220->224, bang 96->97. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@ -25,6 +25,10 @@ public static class MenuKeys
|
||||
public const string CatalogMaterials = "CatalogMaterials";
|
||||
public const string CatalogServices = "CatalogServices";
|
||||
public const string CatalogWorkItems = "CatalogWorkItems";
|
||||
// [K1 — S164, Mig 70] Danh mục Hợp đồng SOL-CCM-SP-002 (86 dòng × 8 nhóm duyệt).
|
||||
// 🔴 VÀO `All` (lệnh lead S164) ⇒ sinh 4 policy ContractCatalog.{Read,Create,Update,Delete}
|
||||
// ⇒ 2 số canonical `docs/STATUS.md` đổi: Menu keys +1 · Policies +4 (DERIVED |All|×|Actions|).
|
||||
public const string ContractCatalog = "ContractCatalog";
|
||||
|
||||
// Per-contract-type menu groups + 3 action leaves each.
|
||||
// Key format: Ct_<TypeCode>[_<Action>] — prefix `Ct_` distinguishes from
|
||||
@ -166,6 +170,7 @@ public static class MenuKeys
|
||||
Dashboard,
|
||||
Master, Suppliers, Projects, Departments,
|
||||
Catalogs, CatalogUnits, CatalogMaterials, CatalogServices, CatalogWorkItems,
|
||||
ContractCatalog, // [K1 Mig 70 — S164] Danh mục Hợp đồng SP-002
|
||||
Contracts, Forms, Reports,
|
||||
PurchaseEvaluations,
|
||||
Hrm, HrmHoSo, // Mig 34 — Phase 10.1
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
using SolutionErp.Domain.Common;
|
||||
|
||||
namespace SolutionErp.Domain.Master.Catalogs;
|
||||
|
||||
// [K1 — S164, Mig 70] Master data "Danh mục Hợp đồng" theo quy trình SOL-CCM-SP-002.v01
|
||||
// (bảng 5.1 A1..C3 + mục 5.2 CEO = 86 dòng). Mỗi dòng = 1 loại hạng mục hợp đồng,
|
||||
// gắn 1 trong 8 NHÓM DUYỆT (N1..N8) quyết định workflow KHKK nào áp cho phiếu.
|
||||
//
|
||||
// Vai ký lưu dạng TEXT (SignerRole + InitialsChain) — 2 TẦNG cố ý (QĐ-4 spec S164):
|
||||
// TEXT ở đây = chuỗi in trên khối ký giai đoạn 4 (bản cứng)
|
||||
// ⟂ ApprovalWorkflowLevel.ApproverUserId = NGƯỜI THẬT duyệt trên hệ thống.
|
||||
// Limitation đã khai: TEXT KHÔNG ràng buộc máy với người-duyệt-thật.
|
||||
public class ContractCatalogEntry : AuditableEntity
|
||||
{
|
||||
public string Code { get; set; } = ""; // Mã dòng danh mục ("A1-01" … "CEO-01") — UNIQUE filtered [IsDeleted]=0
|
||||
public string TenVi { get; set; } = ""; // Tên tiếng Việt
|
||||
public string? TenEn { get; set; } // Tên tiếng Anh
|
||||
public string GroupCode { get; set; } = ""; // Section SP-002: A1..A4, B1..B3, C1..C3, CEO
|
||||
public int ApprovalGroup { get; set; } // 1..8 → nhóm duyệt N1..N8 (validator range, không CHECK constraint)
|
||||
public string SignerRole { get; set; } = ""; // Vai KÝ CHÍNH dạng TEXT (TP.CCM / TP.PRO / PD-PM / CEO)
|
||||
public string? InitialsChain { get; set; } // Chuỗi ký nháy Ô1→Ô4 ("TBP.CCM → NV.CCM → TBP.EQU → NV.EQU"), bỏ N/A
|
||||
public string? NduqNote { get; set; } // Tham khảo Nghị định ủy quyền (OG-3) — seed null, nhập tay sau
|
||||
public bool IsActive { get; set; } = true; // Ẩn khỏi picker mà không cần xoá
|
||||
public int SortOrder { get; set; } // Thứ tự trong section (= STT trên bảng gốc)
|
||||
}
|
||||
Reference in New Issue
Block a user