#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Herzieningsvoorstel 003.057 Safe Handling of Mercury v3.0 — DOCX generator.

Bouwt: deliverables/docx/Herzieningsvoorstel_003057_Mercury_v3.0.docx
Basis: herzieningsvoorstel_003057_v2.0.md (alle 11 punten + G-01/G-02/G-03),
aangevuld en uitgewerkt tot v3.0 (medische surveillance, blootstellingsregister,
ADR/IMDG-nuancering, CLP, fit-test, RI&E/TRA, mijnbouwwet, Implementation Roadmap).

Branding: JvG Consultancy via working/upgrade/jvg_build.py
  - Logo in header: 2,0 cm breed, hoogte automatisch => ratio behouden (1.115:1)
  - Kleuren: navy #003366 koppen/tabelheaders, tekst #1F2937, Calibri
"""
import os
import sys
from datetime import datetime, timezone

HERE = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, os.path.join(HERE, "upgrade"))
from jvg_build import build_docx  # noqa: E402

BASE = "/root/projects/jg/2026-audit-koole-mercury-003057"
OUT = f"{BASE}/deliverables/docx/Herzieningsvoorstel_003057_Mercury_v3.0.docx"
DATE = "25-08-2026"
VERSION = "3.0"

items = []

# ---- 1. Documentbeheer ----------------------------------------------------
items += [
    ("h1", "1. Documentbeheer"),
    ("t", ["Kenmerk", "Waarde"], [
        ["Document", "Herzieningsvoorstel 003.057 Safe Handling of Mercury"],
        ["Versie", f"v{VERSION} (volledige uitwerking van v2.0)"],
        ["Datum", DATE],
        ["Auteur", "JvG Consultancy \u2014 HSEQ Divisie"],
        ["Opdrachtgever", "KOO B.V. (Koole)"],
        ["Brondocument", 'MSD 003.057 "Safe Handling of Mercury" Rev 1 (12-05-2026)'],
        ["Basis", "Compliance Audit 003.057 v2.0 (JvG Consultancy, 24-08-2026)"],
        ["Status", "Definitief \u2014 ter implementatie in Rev 2 e.v."],
        ["Classificatie", "Vertrouwelijk"],
    ]),
    ("p", "Dit voorstel is gericht aan de redacteur van de procedure bij KOO B.V. Elk "
          "herzieningspunt vermeldt de locatie in het brondocument, de vastgestelde tekortkoming, "
          "de voorgestelde tekstaanpassing en de wettelijke onderbouwing. De punten 1 t/m 11 "
          "komen onverkort uit het herzieningsvoorstel v2.0; in deze versie 3.0 zijn de punten "
          "1 t/m 3 volledig uitgewerkt tot direct opneembare proceduretekst en is de "
          "Implementation Roadmap (hoofdstuk 9) toegevoegd."),
]

# ---- 2. Samenvatting ------------------------------------------------------
items += [
    ("h1", "2. Samenvatting en prioritering"),
    ("p", "De Compliance Audit 003.057 v2.0 leverde twaalf bevindingen op (R-01 t/m R-12), "
          "aangevuld met drie bevindingen uit de four-eyes review (G-01 t/m G-03). Dit voorstel "
          "bundelt alle herzieningspunten in vier prioriteitsklassen. V\u00f3\u00f3r aanvang van het "
          "decommissioning-project wordt de procedure minimaal op prioriteitsniveau 1 herzien."),
    ("t", ["Prioriteit", "Betekenis", "Punten", "Revisie"], [
        ["P1 \u2014 Wettelijk verplicht", "Herzien v\u00f3\u00f3r projectuitvoering", "1, 2, 3", "Rev 2 (spoed)"],
        ["P2 \u2014 Wettelijk verplicht / bindend", "Eerstvolgende herzieningsronde", "4, 5, 6, 7", "Rev 3"],
        ["P3 \u2014 Verifieerbaarheid en robuustheid", "Kwaliteitsversterking", "8, 9, 10", "Rev 3"],
        ["P4 \u2014 Four-eyes review", "Interne consistentie en aanvulling", "11 (G-01 t/m G-03)", "Rev 3"],
    ]),
]

# ---- 3. P1 ----------------------------------------------------------------
items += [
    ("page",),
    ("h1", "3. Prioriteit 1 \u2014 Wettelijk verplicht (v\u00f3\u00f3r projectuitvoering herzien)"),

    ("h2", "3.1 Medische surveillance (audit R-01) [WET] \u2014 volledig uitgewerkt"),
    ("pb", "Locatie: ", "nieuwe sectie 5.5 \u201cHealth Surveillance\u201d."),
    ("pb", "Tekortkoming: ", "de procedure bevat geen aanbodverplichting voor een "
           "arbeidsgezondheidskundig onderzoek aan personeel met (mogelijke) kwikblootstelling, "
           "terwijl kwik met de classificatie Repr. 1B (H360D) onder het regime van "
           "Arbobesluit art. 4.10a valt."),
    ("pb", "Voorgestelde proceduretekst: ", ""),
    ("b", "Aanbod arbeidsgezondheidskundig onderzoek (Arbobesluit art. 4.10a) aan al het personeel "
          "met (mogelijke) kwikblootstelling, uitgevoerd door de arbodienst of bedrijfsarts: "
          "v\u00f3\u00f3r aanvang van de blootstelling (nulmeting), tussentijds volgens het protocol van "
          "de arbodienst en na be\u00ebindiging van de blootstelling (eindmeting)."),
    ("b", "Biologische monitoring: bepaling van kwik in urine, met referentiewaarden volgens de "
          "geldende protocollen van de arbodienst; interpretatie uitsluitend door de bedrijfsarts."),
    ("b", "Resultaten worden geregistreerd in het persoonlijk gezondheidsdossier en gekoppeld aan "
          "het blootstellingsregister (punt 3.2)."),
    ("b", "De aanbodverplichting blijft liggen bij de werkgever (KOO); de arbodienst wordt "
          "minimaal geraadpleegd (Consulted)."),
    ("t", ["Rol", "RASCI", "Verantwoordelijkheid"], [
        ["QHSE", "R/A", "Aanbod organiseren, dossierbeheer, evaluatie van het programma"],
        ["Decom Master", "S", "Inzetplanning rond afspraken arbodienst"],
        ["User", "I", "Deelname; melding van klachten aan bedrijfsarts"],
        ["Arbodienst / bedrijfsarts", "C", "Uitvoering onderzoek en interpretatie urinekwik"],
    ]),

    ("h2", "3.2 Blootstellingsregister (audit R-02) [WET] \u2014 volledig uitgewerkt"),
    ("pb", "Locatie: ", "nieuwe subsectie 6.5 \u201cExposure Register\u201d."),
    ("pb", "Tekortkoming: ", "persoonlijke ademhalingszone-meetresultaten worden niet gestructureerd "
           "per werknemer vastgelegd; de lijstenverplichting van Arbobesluit art. 4.15 ontbreekt."),
    ("pb", "Voorgestelde proceduretekst: ", ""),
    ("b", "Alle persoonlijke ademhalingszone-meetresultaten worden vastgelegd in een persoonlijk "
          "blootstellingsregister met minimaal de velden uit onderstaande tabel."),
    ("b", "Verankering in Arbobesluit art. 4.15: een lijst van werknemers die aan blootstelling "
          "aan kwik onderhevig zijn geweest, inclusief het inzagerecht en het recht op een "
          "afschrift voor de werknemer."),
    ("b", "Bewaartermijn: vaststellen conform de wettelijke eisen voor carcinogene, mutagene en "
          "reprotoxische stoffen (langdurig; nader te bevestigen door QHSE Legal)."),
    ("b", "Het register is toegankelijk voor de betrokken werknemer en de arbodienst."),
    ("t", ["Registratieveld", "Inhoud"], [
        ["Naam werknemer", "Naam en personeelsnummer"],
        ["Datum", "Datum van de meting"],
        ["Activiteit", "Werkactiviteit (bijv. snijwerk, reiniging, tankinspectie)"],
        ["Concentratie", "Resultaat ademhalingszone in mg/m\u00b3"],
        ["RPE-klasse", "Bandindeling conform Annex II"],
        ["Duur", "Blootstellingsduur in minuten of uren"],
    ]),

    ("h2", "3.3 Transportpassage Annex III \u201cIBC tanks (ADR)\u201d (audit R-03) [WET \u2014 ADR] \u2014 genuanceerd"),
    ("pb", "Locatie: ", "Annex III, vijfde bullet."),
    ("pb", "Tekortkoming: ", "de huidige passage suggereert dat vloeibaar kwik in IBC's over de weg "
           "vervoerd kan worden. Het ADR sluit dit expliciet uit; voor zeetransport geldt het IMDG "
           "met vergelijkbare beperkingen."),
    ("pb", "Voorgestelde proceduretekst: ", ""),
    ("b", "Vloeibaar kwik is ingedeeld als UN 2809, klasse 8, verpakkinggroep III, "
          "classificatiecode CT1, met gevaarslabels 8 en 6.1. Vervoer in IBC's, bulk en "
          "large packagings is volgens het ADR verboden. Voor zeetransport geldt het IMDG met "
          "dezelfde UN 2809-classificatie en verpakkingbeperkingen."),
    ("b", "Vloeibare kwikresidu's worden uitsluitend vervoerd in UN-gecertificeerde stalen "
          "verpakkingen (PG III), dan wel afgevoerd via een erkende kwikverwerker of "
          "ophaalregeling."),
    ("b", "Indien IBC's zijn bedoeld voor andere vloeistoffen (bijvoorbeeld spoel- of waswater): "
          "formuleer expliciet \u201cvoor zover geen vrij kwik aanwezig is en de inhoud niet onder "
          "UN 2809 valt\u201d."),
]

# ---- Deel 2: P2 t/m bronnen -----------------------------------------------
from herzieningsvoorstel_v3_deel2 import items2  # noqa: E402
items += items2

# ---- Bouw document --------------------------------------------------------
meta = {
    "doctag": "JvG CONSULTANCY \u2014 HSEQ",
    "title": "HERZIENINGSVOORSTEL",
    "subtitle": "Procedure 003.057 Safe Handling of Mercury \u2014 Rev 2",
    "sub2": "Volledige uitwerking v3.0 \u2014 alle herzieningspunten uit v2.0 plus aanvullingen",
    "refline": "Voor de redacteur van de procedure (KOO B.V.) \u2014 Basis: Compliance Audit 003.057 v2.0",
    "refline2": f"Documentreferentie: JvG-HZ-003057-v{VERSION} \u2014 {DATE}",
    "footer": f"JvG Consultancy \u2014 Herzieningsvoorstel 003.057 Kwik v{VERSION} \u2014 {DATE} \u2014 Vertrouwelijk",
}

doc = build_docx(items, meta)

# Metadata (core properties)
cp = doc.core_properties
cp.title = f"Herzieningsvoorstel 003.057 Safe Handling of Mercury v{VERSION}"
cp.author = "JvG Consultancy \u2014 HSEQ Divisie"
cp.subject = "Herzieningsvoorstel MSD 003.057 Rev 2 (KOO B.V.)"
cp.keywords = "003.057; kwik; mercury; Arbobesluit; ADR; CLP; herzieningsvoorstel; v3.0"
cp.category = "HSEQ Compliance"
cp.created = datetime(2026, 8, 25, tzinfo=timezone.utc).replace(tzinfo=None)
cp.modified = cp.created
cp.version = VERSION
cp.comments = ("Volledige uitwerking van herzieningsvoorstel v2.0: medische surveillance, "
               "blootstellingsregister, ADR/IMDG, CLP, fit-test, RI&E/TRA, mijnbouwwet, "
               "four-eyes review en Implementation Roadmap.")

os.makedirs(os.path.dirname(OUT), exist_ok=True)
doc.save(OUT)
print(f"OK: {OUT}")
print(f"Secties/items: {len(items)} | Versie: v{VERSION} | Datum: {DATE}")
