#!/usr/bin/env python3
"""Tạo báo cáo so sánh mẫu màu MHT-67(BL) — Minh Hưng Tiến"""

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
import os

IMG = r"C:\antigra-DS\CLAW_LAM_VIEC\QC\Bao cao\img_42219c8d613b.jpg"
OUT = r"C:\antigra-DS\CLAW_LAM_VIEC\QC\Bao cao\Bao_cao_so_sanh_mau_MHT67_BL_30-07-2026.docx"

doc = Document()

style = doc.styles['Normal']
style.font.name = 'Times New Roman'
style.font.size = Pt(12)
style.element.rPr.rFonts.set(qn('w:eastAsia'), 'Times New Roman')

# ─── Tiêu đề ───
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run("BÁO CÁO SO SÁNH MẪU MÀU — MHT-67 (BL)")
run.bold = True
run.font.size = Pt(16)
run.font.name = "Times New Roman"
run.font.color.rgb = RGBColor(47, 84, 150)

p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run("Công ty Minh Hưng Tiến — Khách hàng FlexiLoad")
run.font.size = Pt(13)
run.font.name = "Times New Roman"

p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run("Ngày báo cáo: 30/07/2026")
run.font.size = Pt(11)
run.font.name = "Times New Roman"

doc.add_paragraph()

# ─── 1. Mục đích ───
doc.add_heading("1. Mục đích", level=2)
p = doc.add_paragraph()
run = p.add_run("So sánh đối chiếu 02 mẫu màu công đoạn MHT-67 (BL) — giữa công thức pha chế mới và mẫu gốc lưu tại xưởng — nhằm đánh giá độ đồng nhất màu sắc và chất lượng bề mặt trước khi đưa vào sản xuất đại trà.")
run.font.name = "Times New Roman"
run.font.size = Pt(12)

# ─── 2. Thông tin mẫu ───
doc.add_heading("2. Thông tin mẫu so sánh", level=2)

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

for ci, h in enumerate(["", "Mẫu trái (Công thức mới)", "Mẫu phải (Mẫu gốc)", "Nhận xét"]):
    cell = table.rows[0].cells[ci]
    cell.text = ""
    p = cell.paragraphs[0]
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run = p.add_run(h)
    run.bold = True
    run.font.size = Pt(9)
    run.font.name = "Times New Roman"
    run.font.color.rgb = RGBColor(255, 255, 255)
    from docx.oxml.ns import nsdecls
    from docx.oxml import parse_xml
    shading = parse_xml(f'<w:shd {nsdecls("w")} w:fill="2F5496"/>')
    cell._tc.get_or_add_tcPr().append(shading)

def add_cell(row, ci, text, bold=False, align=WD_ALIGN_PARAGRAPH.LEFT):
    cell = table.rows[row].cells[ci]
    cell.text = ""
    p = cell.paragraphs[0]
    p.alignment = align
    run = p.add_run(text)
    run.font.size = Pt(9)
    run.font.name = "Times New Roman"
    run.bold = bold

data = [
    ["Mã màu\nGhi chú băng keo", "↑ Lót Màu ZU\nMàu Công Đoạn PU Max 67 (BL) UV ↑", "Mẫu Công Đoạn Lót màu NZ\nMHT-67(BL)", "Công thức mới dùng PU Max 67 +\nlót màu ZU. Mẫu gốc dùng lót màu NZ."],
    ["Màu sắc", "Xanh lam nhạt — pha xám\n(slate blue, muted)", "Xanh lam đậm — pha xanh than\n(steel blue, saturated)", "Mẫu mới nhạt và xám hơn\nmẫu gốc. Cần điều chỉnh."],
    ["Bề mặt", "Vân gỗ dọc: mịn\nPanel chính: da cam (orange peel)", "Vân gỗ dọc: láng mịn\nPanel chính: láng mịn, mờ", "Mẫu mới có texture da cam.\nMẫu gốc láng mịn hơn."],
]

for ri, row_data in enumerate(data):
    for ci, val in enumerate(row_data):
        add_cell(ri+1, ci, val, bold=(ci == 0))

doc.add_paragraph()

# ─── 3. Hình ảnh ───
doc.add_heading("3. Hình ảnh mẫu so sánh", level=2)

p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run()
run.add_picture(IMG, width=Inches(5.5))

p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run("Hình 1: So sánh 02 mẫu màu công đoạn MHT-67 (BL) — Trái: Lót màu ZU + PU Max 67 (UV) / Phải: Lót màu NZ (MHT-67 BL mẫu gốc)")
run.font.name = "Times New Roman"
run.font.size = Pt(9)
run.italic = True

# ─── 4. Đánh giá ───
doc.add_heading("4. Đánh giá", level=2)

p = doc.add_paragraph()
run = p.add_run("Màu sắc: ")
run.bold = True
run.font.name = "Times New Roman"
run = p.add_run("Mẫu công thức mới (Lót màu ZU + PU Max 67) có tông màu nhạt và xám hơn so với mẫu gốc (Lót màu NZ). Chênh lệch màu rõ rệt, cần hiệu chỉnh lại công thức pha màu trước khi đưa vào sản xuất.")
run.font.name = "Times New Roman"

doc.add_paragraph()

p = doc.add_paragraph()
run = p.add_run("Bề mặt: ")
run.bold = True
run.font.name = "Times New Roman"
run = p.add_run("Mẫu gốc có bề mặt láng mịn, mờ đồng nhất. Mẫu mới xuất hiện texture da cam (orange peel) trên panel chính — cần điều chỉnh thông số phun (áp lực súng, độ nhớt, khoảng cách phun) hoặc tỷ lệ dung môi.")
run.font.name = "Times New Roman"

doc.add_paragraph()

p = doc.add_paragraph()
run = p.add_run("Kết luận: ")
run.bold = True
run.font.name = "Times New Roman"
run.font.size = Pt(12)
run = p.add_run("Công thức mới chưa đạt yêu cầu so với mẫu gốc MHT-67 (BL). Cần điều chỉnh lại tỷ lệ phối màu và thông số gia công.")
run.font.name = "Times New Roman"
run.font.size = Pt(12)
run.bold = True

# ─── 5. Kiến nghị ───
doc.add_heading("5. Kiến nghị", level=2)

items = [
    "Điều chỉnh công thức Lót màu ZU + PU Max 67 để khớp với tông màu xanh lam đậm của mẫu gốc MHT-67 (BL).",
    "Kiểm tra lại độ nhớt và áp lực súng phun để khắc phục hiện tượng orange peel trên panel chính.",
    "Làm lại mẫu so sánh và trình QC khách hàng (FlexiLoad) xác nhận trước khi sản xuất đại trà.",
    "Cập nhật thẻ màu chuẩn tại xưởng để tránh lệch chuẩn so với mẫu tủ thành phẩm đã ký.",
]
for item in items:
    p = doc.add_paragraph(item, style='List Number')
    for run in p.runs:
        run.font.name = "Times New Roman"
        run.font.size = Pt(11)

# ─── Lưu ───
doc.save(OUT)
print(f"✅ Đã tạo: {OUT}")
