# -*- coding: utf-8 -*-
r"""B163: xuất DOCX cho mục 14/10 (dùng script chuẩn của skill) + kiểm chứng đầy đủ."""
import io, os, subprocess, sys, zipfile

QC = r'C:\Claw 2\QC'
MUC = os.path.join(QC, '_muc_tri_1410.md')
RA = os.path.join(QC, 'BAO_CAO_QC_14-10-2026_Nguyen_Anh_Tri.docx')
SCRIPT = r'C:\Users\admin\AppData\Local\hermes\skills\productivity\qc-daily-report-chain\scripts\md2docx-qc.py'

r = subprocess.run([sys.executable, SCRIPT, MUC, RA, QC], capture_output=True, text=True,
                   encoding='utf-8', errors='replace', cwd=QC, timeout=600)
print('  xuất:', (r.stdout or '')[-300:])
if r.returncode != 0:
    print('  LỖI:', (r.stderr or '')[-400:])
print('  file:', os.path.getsize(RA) if os.path.exists(RA) else 'KHÔNG CÓ', 'byte')

from docx import Document
d = Document(RA)
doan = len(d.paragraphs)
bang = len(d.tables)
dau_sao = sum(p.text.count('**') for p in d.paragraphs) + \
          sum(c.text.count('**') for t in d.tables for row in t.rows for c in row.cells)
thieu = sum(1 for p in d.paragraphs if 'thiếu ảnh' in p.text.lower())
emoji = 0
for p in d.paragraphs:
    emoji += sum(1 for ch in p.text if ord(ch) > 0x2500 and ch not in '⚠✅❌📸📅🔍✔✖')
with zipfile.ZipFile(RA) as z:
    media = [x for x in z.namelist() if x.startswith('word/media/')]
print('  kiểm chứng: đoạn=%d · bảng=%d · ảnh=%d %s' % (doan, bang, len(media), media[:4]))
print('  dấu ** còn lại: %d (phải = 0) | dòng "thiếu ảnh": %d (phải = 0)' % (dau_sao, thieu))
print('  ký tự ngoài ASCII khác (đếm tham khảo):', emoji)
txt = '\n'.join(p.text for p in d.paragraphs)
for k in ('16”28', '16”70', '10”28', 'Bóng 5 = 70', 'sọc đốm', 'NCKH', 'Nguyễn Anh Trí', 'Dũng'):
    print('    %-16s %s' % (k, k in txt or k in '\n'.join(c.text for t in d.tables for row in t.rows for c in row.cells)))
