# -*- coding: utf-8 -*-
"""Xuất TOÀN BỘ hướng dẫn/huấn luyện của chủ dự án (bảng huan_luyen CSDLA) ra 1 tài liệu duy nhất:
   HUONG_DAN_CHU_DU_AN_Du-an-A.md + .docx (trắng đen) — để lưu lại và gửi chủ dự án.
"""
import io, os, shutil, sqlite3, subprocess
from docx import Document
from docx.shared import RGBColor

D = r'C:\Claw 2\Nghien cuu\Du-an-A-Quy-trinh-son'
PY = r'C:\Users\admin\AppData\Local\hermes\hermes-agent\venv\Scripts\python.exe'
MD2 = r'C:\Users\admin\AppData\Local\hermes\skills\productivity\markdown-to-docx\scripts\md2docx.py'
OUT = os.path.join(D, 'HUONG_DAN_CHU_DU_AN_Du-an-A.md')

c = sqlite3.connect(os.path.join(D, 'CSDLA.db'))
c.row_factory = sqlite3.Row
rows = list(c.execute('select id, ngay, nhom, nguyen_van, quy_tac, pham_vi, trang_thai, nguon, ghi_chu from huan_luyen order by id'))
qt = {r['id']: r['ten'] for r in c.execute('select id, ten from quy_trinh')}
print('số luật/hướng dẫn:', len(rows))

L = []
L.append('# HƯỚNG DẪN & HUẤN LUYỆN CỦA CHỦ DỰ ÁN — DỰ ÁN A (QUY TRÌNH SƠN GỖ NỘI THẤT)')
L.append('')
L.append('*Bản lưu đầy đủ %d hướng dẫn, nguyên văn + quy tắc áp dụng. Nguồn: bảng `huan_luyen` của CSDLA.db.*' % len(rows))
L.append('')
L.append('## QUY TRÌNH CHUẨN ĐANG ÁP DỤNG')
L.append('')
L.append('- **Chuẩn CHUNG — id 116** `QT_CHUAN_LAU-MAU-WASHCOAT`: mẫu **đều một tông** (màu phẳng, L* dao động hẹp).')
L.append('- **Chuẩn NHÁNH 2 — id 118** `QT_CHUAN_NHANH2`: mẫu **Oak/Veneer có ghim sớ tương phản** — dựng đúng theo **phiếu làm mẫu THẬT PT-008H (id 117)**: lau vải màu tạo hiệu ứng highlight → phun stain → **chất ngấm dầu** → lót không màu → dặm stain + **quét cọ glaze lớp 1** → bóng lớp 1 → **quét cọ glaze lớp 2 trên màng bóng** → bóng lớp 2.')
L.append('')
L.append('## NHÓM HƯỚNG DẪN')
L.append('')

nhom_hien = None
for r in rows:
    if r['nhom'] != nhom_hien:
        nhom_hien = r['nhom']
        L.append('### %s' % nhom_hien)
        L.append('')
    L.append('**#%d — %s**' % (r['id'], (r['ngay'] or '')))
    if r['nguyen_van']:
        L.append('')
        L.append('> *Nguyên văn chủ dự án:* %s' % r['nguyen_van'].replace('\n', ' '))
    L.append('')
    L.append('**Quy tắc:** %s' % (r['quy_tac'] or '').replace('\n', ' '))
    if r['pham_vi']:
        L.append('')
        L.append('*Phạm vi:* %s' % r['pham_vi'])
    if r['nguon']:
        L.append('')
        L.append('*Nguồn:* %s' % r['nguon'])
    if r['ghi_chu']:
        L.append('')
        L.append('*Ghi chú:* %s' % r['ghi_chu'].replace('\n', ' '))
    L.append('')

L.append('## CHỈ MỤC 34 BƯỚC CHUẨN VÀ CÁC QUY TRÌNH CHUẨN TRONG CSDLA')
L.append('')
L.append('- 34 bước chuẩn: `01-Bo-dinh-nghia-34-buoc.md`')
L.append('- 12 QT_ công ty + 17 quy trình chuẩn (gồm 116, 117, 118): xem `CSDL_du-an-A.md` và `CSDLA_KIEN_THUC_HUAN_LUYEN.md`')
L.append('')
io.open(OUT, 'w', encoding='utf-8', newline='').write('\n'.join(L))
print('đã ghi', os.path.basename(OUT), os.path.getsize(OUT), 'byte |', len(L), 'dòng')

G = OUT[:-3] + '.docx'
r = subprocess.run([PY, MD2, OUT, G, 'bw'], capture_output=True, text=True, encoding='utf-8', errors='replace', cwd=D)
d = Document(G)
for s in ['Heading 1', 'Heading 2', 'Heading 3']:
    try:
        d.styles[s].font.color.rgb = RGBColor(0, 0, 0)
    except Exception:
        pass
d.save(G)
d = Document(G)
print('DOCX:', os.path.getsize(G), 'byte |', len(d.paragraphs), 'đoạn |', len(d.tables), 'bảng')
o = os.path.join(os.environ['LOCALAPPDATA'], 'hermes', 'cache', 'gui_duan_a')
os.makedirs(o, exist_ok=True)
shutil.copy2(G, o)
print('bản gửi:', os.path.join(o, os.path.basename(G)))
print()
print('=== DANH SÁCH %d HƯỚNG DẪN (id | nhóm | ngày) ===' % len(rows))
for r in rows:
    print('  #%-3s %-22s %-12s %s' % (r['id'], (r['nhom'] or '')[:22], r['ngay'] or '', (r['quy_tac'] or '')[:90].replace('\n', ' ')))
c.close()
