134 lines
7.8 KiB
PHP
134 lines
7.8 KiB
PHP
<section class="page-content pta-page">
|
||
<section class="card">
|
||
<div class="section-heading">
|
||
<div>
|
||
<h2>PTA annuel de l’agent</h2>
|
||
<p class="section-subtitle">Synthèse de l’anné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 lorsqu’ils 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>
|