[CLAUDE] Contract: KHKK man duyet — bo "(N dong)" + cot STT + ma hang muc (Mig 72)
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 7m2s
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 7m2s
Anh giao qua anh prod man duyet KHKK, 2 diem khoanh do:
(1) "Bo 1 dong di nhe" -> go hau to "(N dong)" khoi title Section 2.
(2) "Hien thi stt va ma hang muc (Du an) - ma hang muc chi tiet"
-> bang 3->4 cot (+STT cot rieng, anh chot), cot HANG MUC them dong
ma "<ma du an> - <ma chi tiet>" nam TREN ten.
Mig 72 AddMaHangMucToContractSigningPlanLines (anh chot DENORM co migration):
- +cot MaHangMuc nvarchar(20) = BANG nguon ContractCatalogEntry.Code.
- backfill Sql() idempotent (WHERE MaHangMuc IS NULL), COY KHONG loc IsDeleted:
hang muc xoa mem SAU ngay lap phieu thi dong phieu van phai giu duoc ma —
do chinh la ly do cot nay la denorm. Loc di la bo trong dung dong can cuu nhat.
- ten bang doi chieu voi ToTable() cua CA HAI configuration truoc khi viet
(Mig 60 tung backfill soi NHAM BANG, chay sach, phai de Mig 61 va — gotcha #78/#79).
PeWorkItemCode KHONG denorm — noi join WorkItems san co o Features.cs:929, 0 cot moi.
Chup lai vao KHKK la chup mot thu von da la con tro loose-Guid qua PE (Mig 49).
3 write-site denorm sua DU: :527 moi null · :695 gan lai · :805 tao moi.
Sot 1 cho = de dong co ten ma khong co ma, chi lo ra o luong it ai bam.
FE 2 app SHA IDENTICAL (verify identical @HEAD TRUOC khi copy de).
Build BE 0 warning 0 error · 2 app build sach · 644/644 test pass.
Lint 42 van de = NO CO SAN, 0 cai o 2 file luot nay dung.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@ -26,6 +26,15 @@ public class ContractSigningPlanLine : AuditableEntity
|
||||
// phiếu (khuôn `SignedByFullName` Mig 26). Đọc để hiển thị; đừng join ngược lấy tên mới.
|
||||
public string? TenHangMuc { get; set; }
|
||||
|
||||
// [Mig 72 — S177] Denorm MÃ hạng mục ("A1-01"), chụp CÙNG LÚC với `TenHangMuc` ngay trên.
|
||||
// 🔴 Cặp mã+tên phải denorm CÙNG NHAU, không tách: denorm tên mà join ngược lấy mã thì
|
||||
// một dòng phiếu cũ sẽ hiện tên-lúc-ký ghép mã-hiện-tại — sai lệch khó thấy hơn cả việc
|
||||
// để trôi cả hai. Mọi write-site của `TenHangMuc` PHẢI ghi kèm field này.
|
||||
// NULL = dòng chưa gán hạng mục (`CatalogEntryId` cũng NULL). Dòng cũ trước Mig 72 đã được
|
||||
// backfill, KỂ CẢ khi hạng mục đó nay đã xoá mềm — backfill cố ý không lọc `IsDeleted`.
|
||||
// FE hiển thị lùi về tên khi thiếu mã, không để trống ô.
|
||||
public string? MaHangMuc { get; set; }
|
||||
|
||||
// SNAPSHOT tổng báo giá của NCC này trên phiếu PE (SUM Quote.IsSelected) tại thời
|
||||
// điểm TẠO kế hoạch — chụp 1 lần, KHÔNG đọc live (PE sửa sau không được làm trôi
|
||||
// số của kế hoạch đã lập; cùng triết lý freeze ngân sách Mig 67).
|
||||
|
||||
Reference in New Issue
Block a user