prepare($s);$st->execute($a);} function one(PDO $p,string $s,array $a=[]){$st=$p->prepare($s);$st->execute($a);return $st->fetch(PDO::FETCH_ASSOC);} $NOW='2026-06-20 16:00:00'; $TODAY='2026-06-20'; $NEXT='2027-06-20'; $ORGID=996003; $RSGSI=326; $PRES=103; $modelId=(int)one($pdo,"SELECT id FROM isms_models WHERE organization_id=?",[$ORGID])['id']; /* 1) Inserisci + pubblica i 12 consolidati (v2.0) */ $dir=__DIR__.'/_docs_cons'; $files=glob($dir.'/*.html'); sort($files); $ins=0;$skip=0; foreach($files as $f){ $raw=file_get_contents($f); $nl=strpos($raw,"\n"); $meta=substr($raw,0,$nl); $body=ltrim(substr($raw,$nl+1)); if(!preg_match('/^/',$meta,$mm)){ echo " ! META KO ".basename($f)."\n"; continue; } [$_,$dt,$title,$ver]=$mm; $title=trim($title); if(one($pdo,"SELECT id FROM isms_documents WHERE isms_model_id=? AND title=? AND status<>'archived'",[$modelId,$title])){ echo " = $title\n"; $skip++; continue; } ex($pdo,"INSERT INTO isms_documents (isms_model_id,organization_id,doc_type,title,status,ai_generated,body_html,version, approved_by,approved_at,reviewed_by,reviewed_at,published_by,published_at,effective_date,next_review_date,created_by,created_at,updated_at) VALUES (?,?,?,?, 'published',1,?, ?, ?,?,?,?,?,?,?,?, ?,?,?)", [$modelId,$ORGID,$dt,$title,$body,$ver, $RSGSI,$NOW,$RSGSI,$NOW,$PRES,$NOW,$TODAY,$NEXT, $RSGSI,$NOW,$NOW]); $did=(int)$pdo->lastInsertId(); ex($pdo,"INSERT INTO isms_document_versions (document_id,isms_model_id,organization_id,version,status,body_html,change_note,created_by,created_at) VALUES (?,?,?,?, 'published', ?, ?, ?, ?)", [$did,$modelId,$ORGID,$ver,$body,'Pubblicazione versione '.$ver.' (consolidamento lean)',$PRES,$NOW]); echo " + [$dt] $title\n"; $ins++; } echo "CONSOLIDATI: +$ins pubblicati v2.0 (skip $skip)\n"; /* 2) Archivia gli originali v1.0 ancora pubblicati (i 36 superati dal consolidamento) */ $toArch=$pdo->query("SELECT id,title FROM isms_documents WHERE isms_model_id=$modelId AND status='published' AND version='1.0'")->fetchAll(PDO::FETCH_ASSOC); $arc=0; foreach($toArch as $d){ ex($pdo,"UPDATE isms_documents SET status='archived', archived_at=?, updated_at=? WHERE id=?",[$NOW,$NOW,$d['id']]); $arc++; } echo "ARCHIVIATI: $arc originali v1.0\n"; /* 3) Riepilogo */ echo "--- stato finale documenti (model $modelId) ---\n"; foreach($pdo->query("SELECT status, version, COUNT(*) c FROM isms_documents WHERE isms_model_id=$modelId GROUP BY status,version ORDER BY status,version")->fetchAll(PDO::FETCH_ASSOC) as $r) echo " {$r['status']} v{$r['version']}: {$r['c']}\n"; echo "FASE 8 (consolidamento) OK\n";