wal: flush 20260814T0142

This commit is contained in:
pqhuy1987
2026-08-14 01:42:18 +07:00
parent 416ba9a777
commit 7cf5dcfd0b
5 changed files with 146 additions and 1 deletions

View File

@ -218,3 +218,49 @@ B-4 (authz đính kèm) ──→ W5
| (100) VAT | ❌ **SAI KHUÔN** (S-4) | → *"giá nhập ở Duyệt NCC là **đã gồm** hay **chưa gồm** VAT?"* |
| (101) đánh số menu | ✅ giữ | giữ nguyên |
| — | 🔴 **QUÊN HỎI** | **(102)** *"**ai** được bấm upload bản cứng?"* — quyết cả authz (B-4) lẫn cửa GĐ4 |
---
## ⑥ BẢN THI CÔNG — sau khi owner phán 5/5 câu (`YC-033` + `YC-034`, 2026-08-14)
### ⑥.a — 5 phán quyết của owner
| Câu | Owner chốt | Hệ quả thi công |
|---|---|---|
| **(97)** PHẦN 2 | *"à có nhé, file này"*`002.04`; *"cho nó phần cuối là đc"* | document-view = **PHẦN 1 riêng** (`002.02`/`002.03`) **+ PHẦN 2 gắn CUỐI** (`002.04`, **dùng chung 2 loại**). 🔴 Đo lại bằng thước đã vá: `002.04` = **5 điều**, KHÔNG phải 17 ⇒ chặn gỡ bằng **thu hẹp phạm vi**, không phải bằng tìm ra 12 điều |
| **(99)** khoá | *"upload có quy trình duyệt riêng → duyệt nhanh, nhưng đã chốt rồi ko sửa đc"* | Khoá = **BẤT-KHẢ-ĐẢO**, không phải cờ 2 chiều. Quy trình duyệt bản cứng = **để sau** (kèm `(102)`) ⇒ lượt này chỉ dựng **chốt-cứng** |
| **(100)** VAT | *"hiện là chưa VAT nhưng chỗ này để sau"* | KHÔNG dựng xử-lý VAT. Ghi **nợ đã-biết**: thân HĐ ghi *"bao gồm VAT"* mà số đang chưa VAT |
| **(101)** đánh số menu | *"Tùy mày"* | Lead chọn **`01A.` / `01B.`**, giữ nguyên `02.``07.` (đánh lại 01→09 sẽ đổi số 6 menu người dùng đang quen; bộ số này đã sửa theo UAT anh Kiệt @S159) |
| **(102)** ai upload | *"cho nhân viên → có quy trình riêng nhưng để sau"* | KHÔNG dựng phân quyền upload lượt này. Lỗ `B-4` (endpoint 0 policy/0 ownership) **giữ KHAI là nợ đang mở** |
### ⑥.b — Lead chốt lược đồ `DraftData` (gỡ B-1, tiền đề của W2+W3)
Dev đang **0 row** `DraftData` ⇒ thời điểm rẻ nhất để đặt bao ngoài. Chốt:
```jsonc
{ "schemaVersion": 1,
"kind": "HD-TP-VT" | "HD-TP-TB", // biết thân nào để render
"body": { "<fieldKey>": "<giá trị ô trong thân HĐ>" }, // W2 sở hữu
"paymentTerms": { } // W3 sở hữu — chỗ pe.PaymentTerms đổ về
}
```
⇒ W2 và W3 **hết tranh cột**: mỗi wave sở hữu một nhánh, đọc/ghi qua nhánh của mình. `schemaVersion` để đổi thân về sau không phải đoán.
### ⑥.c — Nợ đã-biết (owner đã thấy, CỐ Ý chưa làm — KHÔNG phải bỏ sót)
1. **VAT** — thân ghi "bao gồm VAT", số chưa VAT · owner: để sau.
2. **Con trỏ chết** — bảng tóm tắt PHẦN 1 trỏ *"xem ĐIỀU 8 / ĐIỀU 12"* của PHẦN 2, mà `002.04` **không có 2 điều đó** · owner chấp nhận đi tiếp.
3. **Authz đính kèm** — upload/xoá 0 policy · 0 ownership · owner: quy trình riêng để sau.
4. **12 điều** của PHẦN 2 theo mục lục · phạm vi thu hẹp còn 5 điều của `002.04`.
### ⑥.d — Thứ tự thi công CHỐT (thay đồ thị §⑤.f)
| Nhóm | Việc | Tiền đề |
|---|---|---|
| **G1** *(chạy ngay, song song thật)* | **W1** tách 2 loại (**17 site**, không phải 13) · **⑤.c-1** convert 2 `.doc``.docx` + chép `wwwroot/templates` + `UPDATE IsActive=1` + **B-5**`ContractTemplates.ContractType` sang 8/9 | 0 |
| **G2** | **W2** document-view (PHẦN 1 riêng ×2 + PHẦN 2 chung ở cuối) + gỡ `draftData:null` **4/4 site** + `MaximumLength` cho `DraftData` | G1 · ⑥.b |
| **G3** | **W3** pre-fill 13 ô + đổi C4 sang `pe.DiaDiem` + vá regression `PaymentTerms` + **B-2** chốt bảng giá đọc số nào để Σ khớp `GiaTri` | G2 |
| **G4** | **W4** print CSS · **W5** khoá bất-khả-đảo (`SealedAt` + cấm xoá/thay file sau chốt) | G2 · G3 |
| **G5** | **W6** reviewer + style ×2 + cicd + runtime-verify | tất cả |
🔴 **Acceptance đã viết lại** theo §⑤.d — đặc biệt: W1 **KHÔNG** dùng "697 PASS giữ nguyên" (sai by-construction) mà **"697+k, khai k, chỉ được sửa `AwV2DesignerMenuKeyTests` 3 method neo số, cấm xoá/skip"**; W5 **KHÔNG** dùng "upload → sửa ⇒ 409" (PASS sẵn) mà **"xoá file bản cứng ⇒ KHÔNG mở khoá lại"**.

View File

@ -0,0 +1,37 @@
# sub-implementer-backend-1 — G1-BE: tách `01. HĐ Thầu phụ` thành 2 loại (VT / TB)
Run: `2026-08-13-S194-yc032-hd-thauphu-2form` · lane G1-BE · agent `implementer-backend`
## 0. Khung
Tên chốt (dùng chung 3 lane, KHÔNG tự đặt khác):
| Member | Value | typeCode | Mã họ | Nhãn VN | Form |
|---|---|---|---|---|---|
| `ContractType.HopDongThauPhuVatTu` | 8 | `ThauPhuVatTu` | `HD-TP-VT` | `01A. HĐ Thầu phụ (Nhân công & Vật tư)` | `SOL-CCM-FO-002.02` |
| `ContractType.HopDongThauPhuThietBi` | 9 | `ThauPhuThietBi` | `HD-TP-TB` | `01B. HĐ Thầu phụ (Nhân công & Thiết bị)` | `SOL-CCM-FO-002.03` |
| `ContractType.HopDongThauPhu` | 1 | `ThauPhu` | `HD-TP` | `01. HĐ Thầu phụ` (LEGACY, giữ nguyên) | — |
Ràng buộc: 0 migration (2 loại mới DÙNG CHUNG bảng `ThauPhuDetails`) · CẤM đụng FE · CẤM đụng `ContractTemplates` seed.
_(đang thi công — append sau mỗi file)_
## 1. Site đã sửa (bảng file:line)
_(pending)_
## 2. Nhánh câm đã bịt
_(pending)_
## 3. Seed menu + workflow
_(pending)_
## 4. Acceptance (lệnh + số thật)
_(pending)_
## 5. Chưa làm được / rủi ro
_(pending)_

View File

@ -0,0 +1,26 @@
# sub-implementer-frontend-1 — G1-FE: 2 loai HD Thau phu moi (ThauPhuVatTu=8 / ThauPhuThietBi=9)
Run: 2026-08-13-S194-yc032-hd-thauphu-2form · lane: implementer-frontend · turn-cap ~35
## 0. Khung
- [ ] Doc spec §6 (ban thi cong) + §5 (va sau review)
- [ ] Grep dem site that (TYPE_CODE_TO_INT / HD-* family / ContractDetailsTab / ContractCreatePage)
- [ ] Sua site
- [ ] Acceptance: npm run build x2 + sha256 pair + grep dem entry
## 1. Site da sua
(dang do dia)
## 2. Dem entry tung ban
(chua do)
## 3. Acceptance (lenh + so)
(chua chay)
## 4. Ca am / rui ro con lai
(chua viet)

View File

@ -0,0 +1,32 @@
# sub-office-document-2 — G1 YC-032 · Đưa 2 mẫu HĐ Thầu phụ vào hệ + bản chữ chuẩn
> Run: `2026-08-13-S194-yc032-hd-thauphu-2form` · Vai: office-document · Ngày: 2026-08-14
> Trạng thái: 🟡 ĐANG CHẠY (khung rỗng, append dần)
## 0. Khung
_(đang điền)_
## A1. Convert + đặt file
_(đang điền)_
## A2. Cờ IsActive
_(đang điền)_
## A3. Chất lượng convert
_(đang điền)_
## B. Bản chữ chuẩn (3 file)
_(đang điền)_
## C. Acceptance + control-dương
_(đang điền)_
## D. Trích lỗi / chưa làm được
_(đang điền)_