[CLAUDE] Docs: User Manual 7 file rewrite compact cho end-user
User feedback: "ko cần quá đầy đủ chi tiết, cho end-user họ làm". Rewrite 7 generator scripts theo style end-user friendly: - Bỏ field validation table 5 cột (Tên field / Kiểu / Bắt buộc / Validation / Ví dụ) - Bỏ error troubleshoot table 3 cột (Lỗi / Nguyên nhân / Cách xử lý) - Bỏ FAQ chi tiết 8 câu (giữ 1 chương "Khi gặp lỗi" 4-5 bullet) - Bỏ phím tắt table - Giữ: tổng quan ngắn, numbered steps đơn giản, note/warn/tip chỉ khi critical 7 file generator (đã refactor dùng _helpers.js shared): - _gen-user-01: Bắt đầu (login + đổi pwd + hồ sơ + dashboard + sidebar + chuông) - _gen-user-02: Hợp đồng (7 loại + tạo + sửa + xóa + đính kèm + comment) - _gen-user-03: Duyệt Workflow (9 phase + 2-stage NV/TPB + reject + resume) - _gen-user-04: Phiếu Duyệt NCC (PE) (A/B + matrix báo giá + winner + 4PB + tạo HĐ) - _gen-user-05: Ngân sách (tạo + hạng mục + WF 3-step + liên kết HĐ/PE) - _gen-user-06: Cheatsheet 7 loại HĐ (mỗi loại 1 page: use case + field + format mã) - _gen-admin-02: Quản lý Users-Roles (tạo + role + reset + lock + bypass review S9) Setup: package.json + npm install docx@9.5.0 + script "gen:all". Output sizes: - 01: 12.1 KB (cũ 21.7 KB → giảm ~44%) - 02: 12.4 KB - 03: 12.2 KB - 04: 12.4 KB - 05: 12.0 KB - 06: 12.8 KB - admin-02: 12.7 KB - Tổng ~86 KB cho 7 file đầy đủ chức năng cốt lõi. Note: ContractType label "Phương án" → "Giải pháp" (đã rebrand session 3). 2-stage dept approval mention ở Phần 03 + admin-02 (Migration 16 Session 8/9). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
168
docs/_user-guide/_gen-user-06.js
Normal file
168
docs/_user-guide/_gen-user-06.js
Normal file
@ -0,0 +1,168 @@
|
||||
// User Manual 06 — Cheatsheet 7 loại HĐ (mỗi loại 1 page tóm gọn)
|
||||
// Style: end-user friendly — chỉ thông tin cốt lõi để Drafter biết khi nào dùng loại nào.
|
||||
const fs = require('fs'); const path = require('path');
|
||||
const H = require('./_helpers');
|
||||
const { h1, h2, p, bullet, num, note, tip, titlePage, buildDoc, Packer } = H;
|
||||
|
||||
const cheatsheet = (info) => {
|
||||
const out = [
|
||||
h1(info.title),
|
||||
p("Khi nào dùng: " + info.use),
|
||||
];
|
||||
if (info.bypass !== undefined) {
|
||||
out.push(p("Bypass CCM: " + (info.bypass ? "Có (skip phase Kiểm tra CCM)" : "Không (đầy đủ 9 phase)")));
|
||||
}
|
||||
out.push(h2("Field đặc thù khi tạo"));
|
||||
for (const f of info.fields) out.push(bullet(f));
|
||||
out.push(h2("Mã HĐ format"));
|
||||
out.push(p(info.codeFormat));
|
||||
if (info.tips) {
|
||||
out.push(h2("Lưu ý"));
|
||||
for (const t of info.tips) out.push(bullet(t));
|
||||
}
|
||||
return out;
|
||||
};
|
||||
|
||||
const children = [
|
||||
...titlePage(
|
||||
"Cheatsheet 7 loại Hợp đồng",
|
||||
"Phần 06: Khi nào dùng loại nào + Field đặc thù mỗi loại",
|
||||
),
|
||||
|
||||
h1("Tóm tắt - Bảng phân loại nhanh"),
|
||||
bullet("HĐ Thầu phụ (HĐTP) — thuê NTP làm việc cho dự án xây dựng (xây thô, hoàn thiện, MEP)"),
|
||||
bullet("HĐ Giao khoán (HĐGK) — khoán việc cho tổ đội nhỏ (theo công nhật, theo m²)"),
|
||||
bullet("HĐ NCC — mua vật tư / thiết bị 1 lần từ NCC (cụ thể đầu việc)"),
|
||||
bullet("HĐ Dịch vụ (HĐDV) — thuê tư vấn / kiểm định / vệ sinh / dịch vụ phụ trợ"),
|
||||
bullet("HĐ Mua bán (HĐMB) — mua bán thiết bị / hàng hóa (không phải vật tư xây dựng)"),
|
||||
bullet("HĐ Nguyên tắc NCC — khung hợp tác lâu dài với NCC, cụ thể từng đợt qua phiếu yêu cầu"),
|
||||
bullet("HĐ Nguyên tắc DV — khung dịch vụ lâu dài (vd hợp đồng vệ sinh năm)"),
|
||||
tip("Nếu phân vân, hỏi P.CCM hoặc P.Mua hàng để chốt loại."),
|
||||
|
||||
...cheatsheet({
|
||||
title: "1. HĐ Thầu phụ (HĐTP) — Type 1",
|
||||
use: "Thuê nhà thầu phụ (NTP) thực hiện gói thầu xây dựng cho 1 dự án cụ thể.",
|
||||
bypass: false,
|
||||
fields: [
|
||||
"NCC/NTP: chọn từ danh sách nhà thầu phụ (Master)",
|
||||
"Dự án: chọn dự án áp dụng",
|
||||
"Hạng mục: liệt kê đầy đủ công việc + khối lượng + đơn giá",
|
||||
"Thanh toán: tỷ lệ tạm ứng / thanh toán theo tiến độ / quyết toán / bảo hành",
|
||||
"Bảo hành: thời gian bảo hành sau quyết toán",
|
||||
],
|
||||
codeFormat: "{Mã DA}/HĐTP/SOL&{Mã NCC}/{số thứ tự 2 chữ số}",
|
||||
tips: [
|
||||
"Đầy đủ 9 phase, có duyệt CCM",
|
||||
"Mỗi NTP chỉ 1 HĐTP active per dự án (chia nhiều đợt qua Hạng mục)",
|
||||
],
|
||||
}),
|
||||
|
||||
...cheatsheet({
|
||||
title: "2. HĐ Giao khoán (HĐGK) — Type 2",
|
||||
use: "Khoán việc cho tổ đội nhỏ (10-50 người) làm phần việc cụ thể trong dự án.",
|
||||
bypass: false,
|
||||
fields: [
|
||||
"Tổ đội: chọn tổ trưởng + tên tổ (Master)",
|
||||
"Dự án + Phạm vi công việc",
|
||||
"Khối lượng giao khoán: theo m², công nhật, hoặc trọn gói",
|
||||
"Đơn giá khoán: per đơn vị",
|
||||
"Thời hạn hoàn thành",
|
||||
],
|
||||
codeFormat: "{Mã DA}/HĐGK/SOL&{Mã NCC}/{số thứ tự 2 chữ số}",
|
||||
}),
|
||||
|
||||
...cheatsheet({
|
||||
title: "3. HĐ NCC — Type 3",
|
||||
use: "Mua vật tư / thiết bị 1 lần từ NCC cho 1 dự án (vd mua thép, xi măng, thang máy).",
|
||||
bypass: false,
|
||||
fields: [
|
||||
"NCC: chọn từ Master",
|
||||
"Dự án",
|
||||
"Hạng mục: vật tư + quy cách + khối lượng + đơn giá",
|
||||
"Giao hàng: địa điểm + thời gian + điều kiện",
|
||||
"Thanh toán: tỷ lệ tạm ứng + còn lại sau giao hàng",
|
||||
],
|
||||
codeFormat: "{Mã DA}/NCC/SOL&{Mã NCC}/{số thứ tự 2 chữ số}",
|
||||
tips: [
|
||||
"Trước khi tạo HĐ NCC, NÊN tạo Phiếu Duyệt NCC (PE) để so sánh giá nhiều NCC",
|
||||
"Sau khi PE Đã duyệt, click \"Tạo HĐ từ phiếu\" → tự sinh HĐ NCC nháp",
|
||||
],
|
||||
}),
|
||||
|
||||
...cheatsheet({
|
||||
title: "4. HĐ Dịch vụ (HĐDV) — Type 4",
|
||||
use: "Thuê dịch vụ tư vấn, kiểm định, thí nghiệm, vệ sinh, an ninh cho 1 dự án.",
|
||||
bypass: true,
|
||||
fields: [
|
||||
"NCC dịch vụ",
|
||||
"Dự án",
|
||||
"Phạm vi dịch vụ: liệt kê công việc tư vấn / kiểm định / ...",
|
||||
"Phí dịch vụ: trọn gói hoặc theo giờ / theo lần",
|
||||
"Sản phẩm bàn giao: báo cáo / chứng nhận / ...",
|
||||
],
|
||||
codeFormat: "{Mã DA}/HĐDV/SOL&{Mã NCC}/{số thứ tự 2 chữ số}",
|
||||
}),
|
||||
|
||||
...cheatsheet({
|
||||
title: "5. HĐ Mua bán (HĐMB) — Type 5",
|
||||
use: "Mua bán thiết bị / hàng hóa không thuộc nhóm vật tư xây dựng (vd máy tính văn phòng).",
|
||||
bypass: true,
|
||||
fields: [
|
||||
"NCC bán hàng",
|
||||
"Dự án (nếu có) hoặc Phòng ban đặt mua",
|
||||
"Hạng mục hàng hóa: tên / model / số lượng / đơn giá",
|
||||
"Bảo hành nhà sản xuất + bảo hành NCC",
|
||||
"Phương thức giao hàng + thanh toán",
|
||||
],
|
||||
codeFormat: "{Mã DA}/MB/SOL&{Mã NCC}/{số thứ tự 2 chữ số}",
|
||||
}),
|
||||
|
||||
...cheatsheet({
|
||||
title: "6. HĐ Nguyên tắc NCC — Type 6",
|
||||
use: "Khung hợp tác lâu dài với 1 NCC (vd hợp đồng nguyên tắc cung cấp xi măng cả năm).",
|
||||
bypass: true,
|
||||
fields: [
|
||||
"NCC + Phạm vi sản phẩm",
|
||||
"Đơn giá khung (có thể điều chỉnh theo CPI / thị trường)",
|
||||
"Thời hạn HĐ nguyên tắc (thường 1 năm)",
|
||||
"Điều kiện chung: thanh toán / giao hàng / phạt",
|
||||
],
|
||||
codeFormat: "{Năm 4 chữ số}/NCC/SOL&{Mã NCC}/{số thứ tự 2 chữ số}",
|
||||
tips: [
|
||||
"Mã HĐ theo NĂM (không theo dự án) — vì áp dụng cho nhiều dự án",
|
||||
"Mỗi đợt mua thực tế tạo Phiếu yêu cầu vật tư (chưa có module — manual)",
|
||||
],
|
||||
}),
|
||||
|
||||
...cheatsheet({
|
||||
title: "7. HĐ Nguyên tắc DV — Type 7",
|
||||
use: "Khung dịch vụ lâu dài (vd hợp đồng vệ sinh hàng năm cho mọi dự án).",
|
||||
bypass: true,
|
||||
fields: [
|
||||
"NCC dịch vụ + Phạm vi dịch vụ",
|
||||
"Phí dịch vụ khung",
|
||||
"Thời hạn HĐ nguyên tắc (thường 1 năm)",
|
||||
"Điều kiện chung",
|
||||
],
|
||||
codeFormat: "{Năm 4 chữ số}/HĐDV/SOL&{Mã NCC}/{số thứ tự 2 chữ số}",
|
||||
}),
|
||||
|
||||
h1("Mẹo chung khi tạo HĐ"),
|
||||
bullet("Chọn đúng loại ngay từ đầu — không chuyển loại sau khi tạo (phải xóa + tạo lại)"),
|
||||
bullet("Liên kết Ngân sách dự án nếu có — để theo dõi \"đã chi vs ngân sách\""),
|
||||
bullet("Đính kèm đầy đủ: báo giá, biên bản đàm phán, phụ lục"),
|
||||
bullet("Mã HĐ KHÔNG gen ngay — chỉ gen khi chuyển sang phase \"Đang đóng dấu\""),
|
||||
];
|
||||
|
||||
const doc = buildDoc(
|
||||
"User Manual - 06 Cheatsheet 7 loại HĐ",
|
||||
"SOLUTION_ERP - User Manual - 06 Cheatsheet 7 loại HĐ",
|
||||
children,
|
||||
);
|
||||
|
||||
const outPath = path.join(__dirname, 'user', '06-7-Loai-HD-Cheatsheet.docx');
|
||||
Packer.toBuffer(doc).then(buf => {
|
||||
fs.writeFileSync(outPath, buf);
|
||||
console.log('✅ Generated:', outPath);
|
||||
console.log(' Size:', (buf.length / 1024).toFixed(1) + ' KB');
|
||||
});
|
||||
Reference in New Issue
Block a user