#!/usr/bin/env python3
"""
Thêm nội dung kiểm tra bổ sung (28-30/07/2026) vào báo cáo của Nguyễn Anh Trí
"""

from docx import Document
from docx.shared import Pt, Cm, RGBColor, Inches
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import qn, nsdecls
from docx.oxml import parse_xml
import os

FILE = r"C:\antigra-DS\CLAW_LAM_VIEC\QC\Bao cao\Bao_cao_dinh_foam_Thinh_Viet_TV246_TV299A_27-07-2026.docx"

doc = Document(FILE)

# ─── Helpers ───
def add_heading(text, level=2):
    h = doc.add_heading(text, level=level)
    for run in h.runs:
        run.font.name = "Times New Roman"
    return h

def add_para(text, bold=False, size=11):
    p = doc.add_paragraph()
    run = p.add_run(text)
    run.font.name = "Times New Roman"
    run.font.size = Pt(size)
    run.bold = bold
    return p

def set_cell(cell, text, bold=False, size=9, align=WD_ALIGN_PARAGRAPH.LEFT, bg=None):
    cell.text = ""
    p = cell.paragraphs[0]
    p.alignment = align
    p.paragraph_format.space_before = Pt(1)
    p.paragraph_format.space_after = Pt(1)
    run = p.add_run(str(text))
    run.font.name = "Times New Roman"
    run.font.size = Pt(size)
    run.bold = bold
    if bg:
        shading = parse_xml(f'<w:shd {nsdecls("w")} w:fill="{bg}"/>')
        cell._tc.get_or_add_tcPr().append(shading)

# ═══════════════════════════════════════════
# THÊM MỤC V: KIỂM TRA BỔ SUNG 28-30/07/2026
# ═══════════════════════════════════════════
doc.add_page_break()

add_heading("V. KIỂM TRA BỔ SUNG — MÀU TV 246 (28-30/07/2026)", level=1)

p = doc.add_paragraph()
run = p.add_run("Ngày kiểm tra: 28/07/2026 → 30/07/2026")
run.font.name = "Times New Roman"
run.font.size = Pt(11)
run.bold = True

p = doc.add_paragraph()
run = p.add_run("Tại công ty: Bình Thạnh")
run.font.name = "Times New Roman"
run.font.size = Pt(11)

p = doc.add_paragraph()
run = p.add_run("Người thực hiện: Nguyễn Anh Trí (QC1)")
run.font.name = "Times New Roman"
run.font.size = Pt(11)

# ─── 1. Nội dung kiểm tra ───
add_heading("1. Nội dung kiểm tra", level=2)
add_para("Kiểm tra chất lượng bộ sơn sử dụng cho màu TV.246 theo sản xuất thực tế Cty Thịnh Việt.")

add_heading("Vật tư sử dụng", level=3)
mat_table = doc.add_table(rows=4, cols=3)
mat_table.style = 'Table Grid'
mat_table.alignment = WD_TABLE_ALIGNMENT.CENTER

headers_mat = ["Vật tư", "Mã số", "Ghi chú"]
for ci, h in enumerate(headers_mat):
    set_cell(mat_table.rows[0].cells[ci], h, bold=True, size=9,
             align=WD_ALIGN_PARAGRAPH.CENTER, bg="2F5496")

mat_data = [
    ["Lót NC KH", "MSBX: 2260626", ""],
    ["Bóng NC NY TV.201", "5220526", ""],
    ["DM NC 1212", "MSBX: 130726130", ""],
]
for ri, row_data in enumerate(mat_data):
    for ci, val in enumerate(row_data):
        set_cell(mat_table.rows[ri+1].cells[ci], val, size=9)

doc.add_paragraph()

add_heading("Sản phẩm kiểm tra", level=3)
add_para("• Kiểm tra trên phôi gỗ tràm.")
add_para("• Hóa chất lấy tại Cty Hóa Keo Bình Thạnh.")

# ─── 2. Quy trình thực hiện ───
add_heading("2. Quy trình thực hiện", level=2)

proc_table = doc.add_table(rows=5, cols=3)
proc_table.style = 'Table Grid'
proc_table.alignment = WD_TABLE_ALIGNMENT.CENTER

for ci, h in enumerate(["Bước", "Công đoạn", "Thời gian"]):
    set_cell(proc_table.rows[0].cells[ci], h, bold=True, size=9,
             align=WD_ALIGN_PARAGRAPH.CENTER, bg="2F5496")

proc_data = [
    ["B1", "Stain màu → để sau 20 phút", "20 phút"],
    ["B2", "Lót NC KH phun (2 pass) → sấy 30 phút → để khô tự nhiên 40 phút → #320", "70 phút"],
    ["B3", "Lót NC KH phun (2 pass) → sấy 30 phút → để khô tự nhiên 40 phút → #320", "70 phút"],
    ["B4", "Bóng NC NY TV.201 (2 pass)", "—"],
]
for ri, row_data in enumerate(proc_data):
    for ci, val in enumerate(row_data):
        set_cell(proc_table.rows[ri+1].cells[ci], val, size=9)

doc.add_paragraph()
add_para("Thực hiện xong quy trình để khô tự nhiên sau 17H và 24H kiểm tra dán dính mặt:")

# ─── 3. Kết quả kiểm tra dán dính ───
add_heading("3. Kết quả kiểm tra dán dính mặt", level=2)
add_para("Các mức khối lượng dán: 0,1 kg/cm²; 0,15 kg/cm²; 0,2 kg/cm²; 0,5 kg/cm²", size=10)

# Table for adhesion results
adh_table = doc.add_table(rows=3, cols=5)
adh_table.style = 'Table Grid'
adh_table.alignment = WD_TABLE_ALIGNMENT.CENTER

# Header row
for ci, h in enumerate(["", "0,1 kg/cm²", "0,15 kg/cm²", "0,2 kg/cm²", "0,5 kg/cm²"]):
    set_cell(adh_table.rows[0].cells[ci], h, bold=True, size=8,
             align=WD_ALIGN_PARAGRAPH.CENTER, bg="2F5496")

set_cell(adh_table.rows[1].cells[0], "Khô sau 17H", bold=True, size=8, bg="D6E4F0")
set_cell(adh_table.rows[1].cells[1], "dán 8H tháo ra\n❌ Không đạt\n(dính foam nặng)", size=8, align=WD_ALIGN_PARAGRAPH.CENTER)
set_cell(adh_table.rows[1].cells[2], "dán 8H tháo ra\n❌ Không đạt\n(dính foam nặng)", size=8, align=WD_ALIGN_PARAGRAPH.CENTER)
set_cell(adh_table.rows[1].cells[3], "dán 8H tháo ra\n❌ Không đạt\n(dính foam nặng)", size=8, align=WD_ALIGN_PARAGRAPH.CENTER)
set_cell(adh_table.rows[1].cells[4], "—", size=8, align=WD_ALIGN_PARAGRAPH.CENTER)

set_cell(adh_table.rows[2].cells[0], "Khô sau 24H", bold=True, size=8, bg="D6E4F0")
set_cell(adh_table.rows[2].cells[1], "dán 12H tháo ra\n❌ Không đạt\n(dính foam)", size=8, align=WD_ALIGN_PARAGRAPH.CENTER)
set_cell(adh_table.rows[2].cells[2], "dán 12H tháo ra\n⚠️ Không đạt\n(dính foam nhẹ)", size=8, align=WD_ALIGN_PARAGRAPH.CENTER)
set_cell(adh_table.rows[2].cells[3], "dán 12H tháo ra\n⚠️ Không đạt\n(dính foam nhẹ)", size=8, align=WD_ALIGN_PARAGRAPH.CENTER)
set_cell(adh_table.rows[2].cells[4], "dán 12H tháo ra\n⚠️ Không đạt\n(dính foam nhẹ)", size=8, align=WD_ALIGN_PARAGRAPH.CENTER)

doc.add_paragraph()

# ─── 4. Thông số kỹ thuật ───
add_heading("4. Thông số kỹ thuật", level=2)

spec_table = doc.add_table(rows=3, cols=3)
spec_table.style = 'Table Grid'
spec_table.alignment = WD_TABLE_ALIGNMENT.CENTER

for ci, h in enumerate(["Vật tư", "Tỷ lệ pha", "Độ nhớt"]):
    set_cell(spec_table.rows[0].cells[ci], h, bold=True, size=9,
             align=WD_ALIGN_PARAGRAPH.CENTER, bg="2F5496")

spec_data = [
    ["Lót NC KH", "(1 - 1)", "15\" 18"],
    ["Bóng NC NY TV.201", "(1 - 1,5)", "14\" 12"],
]
for ri, row_data in enumerate(spec_data):
    for ci, val in enumerate(row_data):
        set_cell(spec_table.rows[ri+1].cells[ci], val, size=9)

doc.add_paragraph()
add_para("Nhiệt độ sấy tủ: 50°C", size=10)
add_para("Thực hiện phun súng bắn tại công ty Hóa Keo Bình Thạnh.", size=10)

# ─── 5. Kết quả màng sơn ───
add_heading("5. Kết quả màng sơn", level=2)
add_para("Màng sơn: trơn, láng, phẳng ✓", size=10)

# ─── 6. Kết luận ───
add_heading("6. Kết luận", level=2)
p = doc.add_paragraph()
run = p.add_run("Kiểm tra theo quy trình thực tế — để khô tự nhiên sau 17H và 24H, dán kiểm tra dính mặt theo chuẩn QC và theo sản xuất thực tế của Cty Thịnh Việt ⇒ ")
run.font.name = "Times New Roman"
run.font.size = Pt(11)
run = p.add_run("KHÔNG ĐẠT — bị dính foam.")
run.font.name = "Times New Roman"
run.font.size = Pt(11)
run.bold = True
run.font.color.rgb = RGBColor(255, 0, 0)

# ─── 7. Nhận xét ───
add_heading("7. Nhận xét", level=2)
add_para("Màng sơn sau 24h, dán 0,1 - 0,15 kg/cm²: chồng đè (đóng gói tại Cty Thịnh Việt: 0,1 - 0,3 kg/cm²)", size=10)

# ─── 8. Chữ ký ───
add_heading("8. Ý kiến, xác nhận", level=2)
add_para("30/07/2026")
add_para("QC HKBT")
add_para("(Đã ký)")
add_para("Ngô Thị Yến | Nguyễn Anh Trí")

# ─── Lưu ───
doc.save(FILE)
print(f"✅ Đã cập nhật báo cáo: {FILE}")
