#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Chromium-upgrade deel 2: Tekstueel Verbeteradvies v3.0, Compliance Audit v2/v3."""
from cr_common import build_docx, FINDINGS, PROPOSALS, FMAP, H2B, BASE, DATE, meta
from va_cr import EXTRA
from au_cr import AUDIT_A, AUDIT_V3_EXTRA

# ---------- 5. Tekstueel Verbeteradvies v3.0 ----------
va_intro = [
("h1", "1. Inleiding en Leeswijzer"),
("p", "Dit Tekstueel Verbeteradvies bevat gedetailleerde, direct toepasbare tekstverbetervoorstellen voor de Koole-procedure 003.056 \u2018Chromium VI Exposure Control Procedure\u2019 (Rev A/Rev 1, 2026). Elk voorstel volgt een vast stramien: locatie, huidige situatie, analyse, voorgestelde herformulering en onderbouwing. Voorstellen T-01 t/m T-12 corresponderen met de herzieningsvoorstellen H1-H12 uit de audit; T-13 t/m T-24 zijn aanvullende verbeteringen op Golden Standard-niveau."),
("t", ["Prioriteit", "Betekenis", "Aantal"], [
["P1", "Wettelijk verplicht \u2014 spoedrevisie v\u00f3\u00f3r projectuitvoering", "6"],
["P2", "Aanbevolen \u2014 eerstvolgende herzieningsronde", "14"],
["P3", "Best practice / documentbeheer", "4"],
["Totaal", "\u2014", "24"],
]),
("h2", "1.1 Werkwijze"),
("n", "Elk voorstel is herleidbaar naar wetsartikel, AI-blad of norm."),
("n", "Voorgestelde teksten in het Engels (taal brondocument); analyse in het Nederlands."),
("n", "T-01 t/m T-12 = H1 t/m H12 uit het herzieningsvoorstel; uitbreidingen zijn T-13 t/m T-24."),
("n", "Na implementatie: doorloop de cross-reference checklist (hoofdstuk 4)."),
]
LOC = {"B1": "Sectie 5 / nieuw hoofdstuk Exposure Assessment", "B2": "Sectie 3 + nieuw \u00a7 Health Surveillance", "B3": "Nieuwe paragraaf Record Retention",
       "B4": "Sectie 4.4 + RI&E-verwijzing", "B5": "Nieuwe paragraaf Exposure Register", "B6": "Sectie 4.3.3/4.5.2",
       "B8": "Sectie 6 References", "B9": "Sectie 4.5.1-4.5.3", "B10": "Sectie 6 References", "B11": "Nieuwe bijlage beheersmaatregelenmatrix",
       "B12": "Sectie 4.5", "B14": "Revisiestatuspagina/voettekst"}
va_items = []
for h in PROPOSALS:
    hid, voorstel, kader, prio = h[0], h[1], h[2], h[3]
    bid = H2B[hid]
    b = FMAP[bid]
    va_items.append(("T-" + hid[1:], LOC[bid], b[1], prio, b[4], b[3], "Herzieningsvoorstel " + hid, voorstel, kader))
va_items += EXTRA

va = list(va_intro)
va.append(("h1", "2. Voorstellen per Locatie in het Brondocument"))
va.append(("p", "Overzicht van alle 24 voorstellen met prioriteit; de detailuitwerking per voorstel volgt hieronder."))
va.append(("t", ["ID", "Locatie", "Thema", "Prio"], [[v[0], v[1][:38], v[2][:52], v[3]] for v in va_items]))
for (tid, loc, thema, prio, huidige, analyse, kop, tekst, rationale) in va_items:
    va += [
      ("h2", f"{tid} \u2014 {loc}: {thema}"),
      ("t", ["Kenmerk", "Waarde"], [
        ["Voorstel-ID", tid],
        ["Locatie", loc],
        ["Thema", thema],
        ["Prioriteit", prio],
        ["Bron", rationale],
      ]),
      ("pb", "Huidige situatie: ", huidige[:700]),
      ("pb", "Analyse: ", analyse[:700]),
      ("pb", "Voorgestelde plaatsing: ", kop + "."),
      ("t", ["Voorgestelde tekst (EN)"], [[tekst]]),
      ("pb", "Onderbouwing: ", rationale + ". Status: " + ("SPOED \u2014 v\u00f3\u00f3r projectuitvoering." if prio == "P1" else "Opnemen in eerstvolgende herzieningsronde.")),
      ("pb", "Verwacht effect na implementatie: ", ("Herstelt de wettelijke conformiteit voor dit onderdeel; risicostatus gaat van P1 naar Conform en de procedure voldoet aan het Arbobesluit-KMR-regime." if prio == "P1" else ("Verbetert afdwingbaarheid en uitvoerbaarheid; risicostatus gaat van P2 naar Conform." if prio == "P2" else "Professionaliseert documentbeheer en best practice; geen directe wettelijke statuswijziging."))),
    ]
va += [
("h1", "3. Implementatievolgorde"),
("t", ["Volgorde", "Voorstellen", "Revisie", "Rationale"], [
["1", "T-01 t/m T-05 + T-14 (H1-H5 + rol bedrijfsarts)", "Spoedrevisie", "P1: meetstrategie, AGO, bewaring, register, RI&E, rol"],
["2", "T-06 t/m T-12 (H6-H12)", "Vervolgrevisie", "P2: OR/PVT, REACH, afval, AI-bladen, beheersregime, hi\u00ebrarchie, versiebeheer"],
["3", "T-13, T-15, T-16, T-17, T-18, T-19", "Vervolgrevisie", "Definities, meetlog, fit-test, training, OEL-notitie, referentie"],
["4", "T-20 t/m T-24", "Vervolgrevisie", "Keten, OR/PVT-equivalent, zeetransport, CLP/SDS, checklist"],
]),
("h1", "4. Cross-Reference Checklist na Implementatie"),
("n", "Controleer dat B1-B18 uit de audit elk zijn afgedekt door minimaal \u00e9\u00e9n T-voorstel."),
("n", "Controleer dat nieuwe hoofdstukken (Exposure Assessment, Health Surveillance, Exposure Register, Record Retention) onderling en met \u00a73 zijn gecross-referenced."),
("n", "Controleer dat de revision log is gevuld (Section + Description of Change) en dat voettekst-/coverdata consistent zijn."),
("n", "Controleer dat \u00a76 de AI-bladen, NEN-normen en REACH bevat en dat \u2018Hoondert Study\u2019 gedateerd is."),
("n", "Herzie de Belgische OEL-notitie (T-18)."),
("n", "Laat de herziene procedure opnieuw toetsen tegen Conformiteitsmatrix_ChroomVI_v1.0.xlsx."),
("h1", "5. Bijlage \u2014 Geconsolideerde voorbeeldteksten"),
("h2", "5.1 Voorbeeld nieuwe paragraaf Health Surveillance (EN)"),
("p", "All workers who are or may be exposed to Cr(VI) compounds are offered health surveillance pursuant to the Dutch Working Conditions Decree (art. 4.10a): pre-placement assessment before first exposure, periodic assessments during exposure, and an exit assessment at the end of assignment. The occupational health physician advises on individual measures; medical records are kept confidentially by the occupational health service."),
("h2", "5.2 Voorbeeld nieuwe paragraaf Exposure Register (EN)"),
("p", "The QHSE Manager maintains an exposure register listing all workers \u2014 including contractors and subcontractors \u2014 exposed or potentially exposed to Cr(VI), with name, function, tasks, measured or estimated exposure levels and dates. Each worker has the right to inspect the register and obtain a copy. The register and all exposure records are retained for 40 years after the last exposure, also beyond project closure, and transferred to the corporate HSE archive under documented handover."),
("h2", "5.3 Voorbeeld ADR-ge\u00efnspireerde afvalclausule (EN)"),
("p", "Cr(VI)-contaminated waste (PPE, filters, cleaning residues, vacuum contents) is classified, packaged and labelled as hazardous waste in accordance with the Dutch Activities Decree and Waste Management Act; shipments are accompanied by waste transfer notes, transferred only to licensed processors, and sea transport from the platform complies with IMDG requirements for the applicable UN entries."),
("pi", "ChroomVI Tekstueel Verbeteradvies v3.0 \u2014 JvG Consultancy \u2014 24-08-2026 \u2014 Vertrouwelijk."),
]
d = build_docx(va, meta("TEKSTUEEL VERBETERADVIES", "ChroomVI \u2014 Koole 003.056",
    f"JvG Consultancy \u2014 Tekstueel Verbeteradvies v3.0 \u2014 {DATE} \u2014 Vertrouwelijk",
    sub2="Gedetailleerde tekstverbetervoorstellen per sectie van 003.056",
    refline="Koppeling: Compliance Audit v3.0 (B1-B18, H1-H12) \u00b7 Conformiteitsmatrix v1.0",
    refline2="Iteratie: v1.0 (herzieningsvoorstellen) \u2192 v2.0 (structuur) \u2192 v3.0 (deze uitgave)"))
d.save(f"{BASE}/ChroomVI_Tekstueel_Verbeteradvies_v3.0.docx")

# ---------- 6. Compliance Audit v2.0 / v3.0 ----------
d = build_docx(AUDIT_A, meta("COMPLIANCE AUDIT", "ChroomVI \u2014 Koole 003.056",
    f"JvG Consultancy \u2014 Compliance Audit ChroomVI 003.056 v2.0 \u2014 {DATE} \u2014 Vertrouwelijk",
    sub2="Document-based compliance audit \u2014 diepgaand",
    refline='Brondocument: 003.056 "Chromium VI Exposure Control Procedure" Rev A/Rev 1 (2026)',
    refline2="Iteratie v1.0 \u2192 v2.0 (volledig rapport incl. nood-QC)"))
d.save(f"{BASE}/Compliance_Audit_ChroomVI_003056_v2.0.docx")

d = build_docx(AUDIT_A + AUDIT_V3_EXTRA, meta("COMPLIANCE AUDIT", "ChroomVI \u2014 Koole 003.056",
    f"JvG Consultancy \u2014 Compliance Audit ChroomVI 003.056 v3.0 \u2014 {DATE} \u2014 Vertrouwelijk",
    sub2="Document-based compliance audit \u2014 met reviewverwerking, consistentietoets en TierVerify",
    refline='Brondocument: 003.056 "Chromium VI Exposure Control Procedure" Rev A/Rev 1 (2026)',
    refline2="Iteratie v1.0 \u2192 v2.0 \u2192 v3.0 (Golden Standard-niveau)"))
d.save(f"{BASE}/Compliance_Audit_ChroomVI_003056_v3.0.docx")
print("Chromium deel 2 gereed.")
