# -*- coding: utf-8 -*-
"""Ẩn tên khách/KTV + đổi CSDL thành CSDLA + tạo bản .md sạch để xuất DOCX."""
import os, re, shutil, sqlite3

D = r'C:\Claw 2\Nghien cuu\Du-an-A-Quy-trinh-son'
SRC_MD = os.path.join(D, 'PHAN_TICH_2026-10-05.md')
OUT_MD = os.path.join(D, 'Quy-trinh-son_chuan-hoa-tu-anh_05-10-2026.md')
DB_OLD = os.path.join(D, 'CSDLA.db')
DB_NEW = os.path.join(D, 'CSDLA.db')

# ---------- 1. An danh trong .md ----------
t = open(SRC_MD, encoding='utf-8').read()
REP = [
    ('CÔNG TY TRENDWORLD', '(khách hàng — đã lược tên)'),
    ('Trendworld', '(khách hàng đã lược tên)'),
    ('TRENDWORLD', '(khách hàng đã lược tên)'),
    ('Bình Thạnh chem', '(phòng mẫu nội bộ)'),
    ('Nguyễn Văn Tươi', '(KTV — đã lược tên)'),
    ('N.D. Vững', '(KTV — đã lược tên)'),
]
print('=== thay ten rieng trong .md ===')
for a, b in REP:
    n = t.count(a)
    print('   %-22s -> %-28s : %d lan' % (a, b, n))
    t = t.replace(a, b)
con_lai = re.findall(r'\b(?:Nguyễn|Trần|Lê|Phạm|Hoàng|Võ|Đặng|Bùi|Đỗ|Ngô|Dương|Phan|Vũ|Trịnh|Đinh)\s+[A-ZĐ][a-zà-ỹ]+', t)
print('   tên người còn sót:', sorted(set(con_lai)))

HEAD = """# QUY TRÌNH SƠN CHUẨN HOÁ TỪ ẢNH MẪU — 05/10/2026

**Đơn vị:** Công ty TNHH SX-TM Hóa Keo Bình Thạnh (BT CHEM) · **Dự án:** A — Phân tích & nhận định quy trình sơn
**Nguồn:** 06 ảnh phiếu làm mẫu / phiếu quy trình + tấm mẫu gỗ (thư mục `anh_vao\\`)
**Chuẩn đối chiếu:** bộ **26 bước Step Finish** (Việt · English · 中文)
**Cơ sở dữ liệu:** **CSDLA** (`CSDLA.db`) — kho quy trình dùng để phân tích & đề xuất quy trình cho mẫu mới
**Ghi chú:** tài liệu đã **lược bỏ tên riêng của khách hàng và kỹ thuật viên** theo yêu cầu chủ dự án; mọi số liệu, mã mẫu, tỉ lệ pha và thông số giữ nguyên theo ảnh.

---

"""
open(OUT_MD, 'w', encoding='utf-8').write(HEAD + t)
print('   da ghi:', OUT_MD, os.path.getsize(OUT_MD), 'byte')

# ---------- 2. Doi ten CSDL + an ten trong 4 ban ghi tu anh ----------
if os.path.exists(DB_OLD) and not os.path.exists(DB_NEW):
    os.rename(DB_OLD, DB_NEW)
    print('=== doi ten CSDL: CSDLA.db -> CSDLA.db ===')
con = sqlite3.connect(DB_NEW)
c = con.cursor()
n = c.execute("select count(*) from quy_trinh where loai='chuẩn hoá từ ảnh'").fetchone()[0]
c.execute("""update quy_trinh set khach_hang=NULL, nha_may_id=NULL,
             ghi_chu = COALESCE(NULLIF(ghi_chu,'')||' | ','') || 'tên khách hàng/KTV đã lược bỏ theo yêu cầu chủ dự án 05/10/2026'
             where loai='chuẩn hoá từ ảnh'""")
con.commit()
print('   da an ten khach/KTV trong %d ban ghi tu anh' % n)
print('   con lai co khach_hang:', c.execute("select count(*) from quy_trinh where khach_hang is not null and loai='chuẩn hoá từ ảnh'").fetchone()[0])
con.close()

# ---------- 3. Cap nhat tham chieu ten CSDL trong script/tai lieu du an ----------
print()
print('=== cap nhat tham chieu CSDLA.db -> CSDLA.db ===')
for fn in os.listdir(D):
    if fn.endswith(('.py', '.txt', '.md')) and fn not in ('Quy-trinh-son_chuan-hoa-tu-anh_05-10-2026.md',):
        p = os.path.join(D, fn)
        try:
            s = open(p, encoding='utf-8').read()
        except Exception:
            continue
        if 'CSDLA.db' in s:
            s2 = s.replace('CSDLA.db', 'CSDLA.db')
            open(p, 'w', encoding='utf-8').write(s2)
            print('   da sua:', fn, '(%d cho)' % s.count('CSDLA.db'))

# ---------- 4. Ghi muc huong dan su dung CSDLA vao README ----------
README = os.path.join(D, 'README_DU-AN-A.md')
s = open(README, encoding='utf-8').read()
BLOCK = """
## CSDLA — cơ sở dữ liệu quy trình sơn của dự án A

- **Tên CSDL: `CSDLA`** (file `CSDLA.db`) — do chủ dự án đặt tên ngày 05/10/2026.
- **Mục đích:** kho quy trình + bộ bước chuẩn để **phân tích & đề xuất quy trình** khi chủ dự án gửi **một hình mẫu mới** (ảnh phiếu làm mẫu / tấm mẫu gỗ).
- **Quy trình dùng lại mỗi lần có mẫu mới (3 bước):**
  1. Copy ảnh mới vào `anh_vao\\` → giao AGY đọc: **phân tích đặc điểm** (màu sắc, hệ sơn, công thức/tỉ lệ, các bước).
  2. AGY **áp vào `buoc_chuan` (34 bước)** và **đối chiếu `quy_trinh` đã có trong CSDLA** → tìm quy trình gần nhất, chỉ ra chỗ khớp/thiếu/khác.
  3. Xuất **đề xuất quy trình** theo tên gọi chuẩn (Việt · English · 中文) + bổ sung bản ghi mới vào CSDLA.
- **Quy tắc dữ liệu:** tên riêng khách hàng/kỹ thuật viên **không lưu** (đã lược bỏ 05/10/2026); giữ mã mẫu, loại gỗ, hệ sơn, mã nguyên liệu, tỉ lệ pha, thông số và nguồn.
- **Bảng trong CSDLA:** `buoc_chuan` (24) · `quy_trinh` · `buoc_quy_trinh` · `phong_cach` · `cong_thuc` · `danh_muc_mau` · `nguon_quet`.
"""
if 'CSDLA' not in s:
    s = s.rstrip() + '\n' + BLOCK
    open(README, 'w', encoding='utf-8').write(s)
    print()
    print('   da bo sung muc CSDLA vao README_DU-AN-A.md')
else:
    print('   README da co muc CSDLA')
print()
print('=== TONG KET ===')
con = sqlite3.connect(DB_NEW)
for tb in ['buoc_chuan', 'quy_trinh', 'buoc_quy_trinh', 'phong_cach', 'cong_thuc', 'danh_muc_mau', 'nguon_quet']:
    print('   %-16s %d' % (tb, con.execute('select count(*) from %s' % tb).fetchone()[0]))
con.close()
print('   CSDLA.db:', os.path.getsize(DB_NEW), 'byte')
