Files
pta/app/Views/partials/pta.php
Loic Masi 5fbf76868f pour prod
2026-08-07 16:13:43 +02:00

134 lines
7.8 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<section class="page-content pta-page">
<section class="card">
<div class="section-heading">
<div>
<h2>PTA annuel de lagent</h2>
<p class="section-subtitle">Synthèse de lannée civile, répartition des 1 607 heures proratisées et contrôles métier. Un même agent peut intervenir en périscolaire et en extrascolaire.</p>
</div>
</div>
<div class="selection-grid overview-filters">
<label class="field">
<span>Agent soumis au PTA</span>
<select id="pta-agent">
<option value="">Choisir un agent</option>
<?php foreach ($agents as $agent): ?>
<option value="<?= (int) $agent['id_agent'] ?>">
<?= htmlspecialchars($agent['prenom'] . ' ' . $agent['nom'] . ' — ' . ($agent['poste_libelle'] ?? 'Poste non renseigné')) ?>
</option>
<?php endforeach; ?>
</select>
</label>
<label class="field">
<span>Date de référence</span>
<input id="pta-reference-date" type="date" value="<?= htmlspecialchars(date('Y-m-d')) ?>">
</label>
<div class="overview-filter-actions">
<button id="load-pta" type="button" class="button button-primary filter-button">Afficher le PTA</button>
</div>
</div>
<div id="pta-message" class="message" role="status" aria-live="polite"></div>
</section>
<section id="pta-content" hidden>
<section class="card">
<div class="section-heading">
<div>
<h2 id="pta-agent-name">Synthèse</h2>
<p id="pta-agent-meta" class="section-subtitle"></p>
</div>
<div class="button-group">
<a id="pta-open-planning" class="button button-secondary" href="planning.php">Ouvrir le planning</a>
<a id="pta-open-agent-view" class="button button-secondary" href="agents.php">Vue mensuelle</a>
</div>
</div>
<div id="pta-summary-cards" class="summary-grid"></div>
</section>
<section class="card">
<div class="section-heading">
<div>
<h2>Répartition du temps</h2>
<p class="section-subtitle">Les congés annuels et les JNT restent visibles, même lorsquils ne décomptent pas le quota.</p>
</div>
</div>
<div class="table-scroll">
<table class="planning-table">
<thead><tr><th>Catégorie</th><th>Durée</th><th>Jours concernés</th></tr></thead>
<tbody id="pta-category-body"></tbody>
</table>
</div>
</section>
<section class="card">
<div class="section-heading">
<div>
<h2>Contrôles du PTA</h2>
<p class="section-subtitle">Les alertes signalent les incohérences à contrôler ; elles ne remplacent pas la validation RH ou réglementaire.</p>
</div>
</div>
<div id="pta-controls" class="control-list"></div>
</section>
<div class="admin-grid">
<section class="card admin-card">
<div class="section-heading">
<div>
<h2>Contraintes prioritaires</h2>
<p class="section-subtitle">Préconisation médicale ou temps partiel thérapeutique applicable sur une période.</p>
</div>
</div>
<form id="pta-constraint-form" class="admin-form">
<div class="admin-form-grid">
<label class="field">
<span>Type</span>
<select id="pta-constraint-type" required>
<option value="MEDICALE">Préconisation médicale</option>
<option value="TEMPS_PARTIEL_THERAPEUTIQUE">Temps partiel thérapeutique</option>
</select>
</label>
<label class="field"><span>Début</span><input id="pta-constraint-start" type="date" required></label>
<label class="field"><span>Fin</span><input id="pta-constraint-end" type="date"></label>
<label class="field"><span>Quotité temporaire (%)</span><input id="pta-constraint-rate" type="number" min="1" max="100" step="0.01"></label>
<label class="field"><span>Maximum par jour (h)</span><input id="pta-constraint-day-max" type="number" min="0.25" step="0.25"></label>
<label class="field"><span>Maximum par semaine (h)</span><input id="pta-constraint-week-max" type="number" min="0.25" step="0.25"></label>
<label class="check-field"><input id="pta-forbid-morning" type="checkbox"> <span>Interdit le matin</span></label>
<label class="check-field"><input id="pta-forbid-midday" type="checkbox"> <span>Interdit le midi</span></label>
<label class="check-field"><input id="pta-forbid-evening" type="checkbox"> <span>Interdit le soir</span></label>
<label class="field admin-field-wide"><span>Commentaire prioritaire</span><textarea id="pta-constraint-comment" rows="3" maxlength="1000" required></textarea></label>
</div>
<div class="admin-form-actions"><button class="button button-primary" type="submit">Enregistrer la contrainte</button></div>
</form>
<div id="pta-constraint-list" class="stack-list"></div>
</section>
<section class="card admin-card">
<div class="section-heading">
<div>
<h2>Préférences et interdictions de lieu</h2>
<p class="section-subtitle">Ces informations orientent la composition des équipes après les contraintes prioritaires.</p>
</div>
</div>
<form id="pta-wish-form" class="admin-form">
<div class="admin-form-grid">
<label class="field">
<span>Lieu</span>
<select id="pta-wish-structure" required>
<option value="">Choisir un lieu</option>
<?php foreach ($structures as $structure): ?>
<option value="<?= (int) $structure['id_structure'] ?>"><?= htmlspecialchars($structure['nom']) ?></option>
<?php endforeach; ?>
</select>
</label>
<label class="field"><span>Choix</span><select id="pta-wish-type"><option value="PREFERENCE">Préférence</option><option value="INTERDICTION">Interdiction</option></select></label>
<label class="field"><span>Priorité</span><input id="pta-wish-priority" type="number" min="1" max="5" value="1"></label>
<label class="field"><span>Distance domicile-lieu (km)</span><input id="pta-wish-distance" type="number" min="0" step="0.1"></label>
<label class="field admin-field-wide"><span>Commentaire</span><textarea id="pta-wish-comment" rows="3" maxlength="500"></textarea></label>
</div>
<div class="admin-form-actions"><button class="button button-primary" type="submit">Enregistrer le choix</button></div>
</form>
<div id="pta-wish-list" class="stack-list"></div>
</section>
</div>
</section>
</section>