Files

156 lines
9.0 KiB
PHP

<?php
$ouvert = $b['statut'] === 'ouvert';
$actives = array_filter($b['propositions'], static fn ($p) => $p['etat'] !== 'ecarte');
?>
<p class="fil"><a href="<?= e(url('besoins')) ?>"><?= e(t('Besoins clients')) ?></a> / <?= e($b['client']) ?></p>
<div class="entete-profil">
<div>
<h1><?= e($b['intitule']) ?></h1>
<p class="sous-titre">
<strong><?= e($b['client']) ?></strong>
<span class="badge badge-besoin-<?= e($b['statut']) ?>"><?= e(t(ETATS_BESOIN[$b['statut']])) ?></span>
<span><?= e(t('créé par %s le %s', $b['nom_affiche'], date_fr($b['cree_le']))) ?></span>
</p>
</div>
<?php if (peut_ecrire()): ?>
<form method="post" action="<?= e(url('besoin', ['id' => $b['id']])) ?>" class="statut-form">
<?= champ_csrf() ?>
<label><?= e(t('Statut du besoin')) ?>
<select name="statut">
<?php foreach (ETATS_BESOIN as $code => $libelle): ?><option value="<?= e($code) ?>"<?= $b['statut'] === $code ? ' selected' : '' ?>><?= e(t($libelle)) ?></option><?php endforeach; ?>
</select>
</label>
<button type="submit" name="action" value="statut" class="secondaire"><?= e(t('Mettre à jour')) ?></button>
</form>
<?php endif; ?>
</div>
<?php if ($erreur !== null): ?><p class="flash flash-erreur" role="alert"><?= e($erreur) ?></p><?php endif; ?>
<div class="deux-colonnes">
<div>
<section class="carte" id="propositions">
<h2><?= e(t('Profils proposés')) ?> <small><?= count($actives) ?></small></h2>
<?php if (!$b['propositions']): ?>
<p class="vide"><?= e(t('Aucun profil proposé. Choisissez-en dans la liste ci-dessous, ou depuis la fiche d\'un profil.')) ?></p>
<?php else: ?>
<ul class="simple agenda">
<?php foreach ($b['propositions'] as $p): ?>
<li class="<?= $p['etat'] === 'ecarte' ? 'faite' : '' ?>">
<?= avatar($p) ?>
<div>
<a href="<?= e(url('profil', ['id' => $p['id']])) ?>"><?= e($p['prenom'] . ' ' . $p['nom']) ?></a>
<span class="badge badge-proposition-<?= e($p['etat']) ?>"><?= e(t(ETATS_PROPOSITION[$p['etat']])) ?></span>
<p><?= e(implode(' · ', array_filter([
$p['titre'], t(SENIORITES[$p['seniorite']]), annees($p['annees_experience']), t(STATUTS[$p['statut']]),
$p['archive_le'] ? t('Archivé') : null, $p['tjm'] ? t('TJM %s', euros($p['tjm'])) : null,
]))) ?></p>
<?php if ($p['note']): ?><p><?= e($p['note']) ?></p><?php endif; ?>
<small><?= e(t('ajouté par %s le %s', $p['nom_affiche'], date_fr($p['ajoute_le']))) ?></small>
<?php if (peut_ecrire()): ?>
<details>
<summary><?= e(t('Mettre à jour')) ?></summary>
<form method="post" action="<?= e(url('besoin', ['id' => $b['id']])) ?>" class="pile">
<?= champ_csrf() ?>
<input type="hidden" name="candidat_id" value="<?= (int) $p['id'] ?>">
<label><?= e(t('État')) ?>
<select name="etat">
<?php foreach (ETATS_PROPOSITION as $code => $libelle): ?><option value="<?= e($code) ?>"<?= $p['etat'] === $code ? ' selected' : '' ?>><?= e(t($libelle)) ?></option><?php endforeach; ?>
</select>
</label>
<label><?= e(t('Note')) ?> <input type="text" name="note" maxlength="500" value="<?= e($p['note'] ?? '') ?>"></label>
<div class="actions">
<button type="submit" name="action" value="retirer" class="lien"><?= e(t('Retirer de ce besoin')) ?></button>
<button type="submit" name="action" value="etat" class="secondaire"><?= e(t('Enregistrer')) ?></button>
</div>
</form>
</details>
<?php endif; ?>
</div>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</section>
<?php if ($ouvert): ?>
<section class="carte" id="rapprochement">
<h2><?= e(t('Profils du vivier qui répondent au besoin')) ?></h2>
<?php if (!$suggestions): ?>
<p class="vide"><?= e(t('Aucun profil ne porte les technologies ni les mots de l\'intitulé. Élargissez la demande, ou importez de nouveaux CV.')) ?></p>
<?php else: ?>
<ul class="simple agenda rapprochement">
<?php foreach ($suggestions as $r): ?>
<li>
<?= avatar($r) ?>
<div>
<a href="<?= e(url('profil', ['id' => $r['id']])) ?>"><?= e($r['prenom'] . ' ' . $r['nom']) ?></a>
<span class="note-rapprochement" title="<?= e(t('Note de rapprochement sur 100')) ?>"><?= (int) $r['score'] ?><small>/100</small></span>
<p><?= e(implode(' · ', array_filter([
$r['titre'], t(SENIORITES[$r['seniorite']]), annees($r['annees_experience']), t(STATUTS[$r['statut']]),
libelle_disponibilite($r) ?: null,
$r['tjm'] ? t('TJM %s', euros($r['tjm'])) : null,
]))) ?></p>
<?php if ($r['trouvees'] || $r['manquantes']): ?>
<p class="technos">
<?php foreach ($r['trouvees'] as $t): ?><span class="trouve"><?= e($t['nom']) ?><?= $t['annees'] !== null ? ' ' . e(annees($t['annees'])) : '' ?></span><?php endforeach; ?>
<?php foreach ($r['manquantes'] as $t): ?><span class="absent"><?= e(t('%s absent', $t)) ?></span><?php endforeach; ?>
</p>
<?php endif; ?>
<?php foreach ($r['alertes'] as $a): ?><small class="retard"><?= e($a) ?></small><?php endforeach; ?>
<?php if (peut_ecrire()): ?>
<form method="post" action="<?= e(url('besoin', ['id' => $b['id']])) ?>" class="actions-ligne">
<?= champ_csrf() ?>
<input type="hidden" name="candidat_id" value="<?= (int) $r['id'] ?>">
<button type="submit" name="action" value="proposer" class="secondaire"><?= e(t('Proposer')) ?></button>
</form>
<?php endif; ?>
</div>
</li>
<?php endforeach; ?>
</ul>
<p class="aide"><?= e(t('Note sur 100 : technologies 55, intitulé 15, séniorité 10, langues 10, disponibilité 5, tarif 5. Une donnée inconnue vaut la moitié des points. Les profils archivés ou non retenus sont exclus.')) ?></p>
<?php endif; ?>
</section>
<?php endif; ?>
</div>
<aside>
<section class="carte">
<h2><?= e(t('Demande')) ?></h2>
<dl class="grille serre">
<dt><?= e(t('Séniorité')) ?></dt><dd><?= $b['seniorite_min'] ? e(t('%s au moins', t(SENIORITES[$b['seniorite_min']]))) : '<em>' . e(t('Indifférente')) . '</em>' ?></dd>
<dt><?= e(t('Langues')) ?></dt><dd><?= e($b['langues']) ?: '<em>' . e(t('non renseigné')) . '</em>' ?></dd>
<dt><?= e(t('Lieu')) ?></dt><dd><?= e($b['lieu']) ?: '<em>' . e(t('non renseigné')) . '</em>' ?></dd>
<dt><?= e(t('Télétravail')) ?></dt><dd><?= $b['teletravail'] ? e(t(TELETRAVAIL[$b['teletravail']])) : '<em>' . e(t('non renseigné')) . '</em>' ?></dd>
<dt><?= e(t('Début')) ?></dt><dd><?= e(date_fr($b['date_debut'])) ?: '<em>' . e(t('non renseigné')) . '</em>' ?></dd>
<dt><?= e(t('Budget')) ?></dt><dd><?= $b['tjm_max'] ? e(t('%s par jour', euros($b['tjm_max']))) : '<em>' . e(t('non renseigné')) . '</em>' ?></dd>
</dl>
<?php if ($b['technologies']): ?>
<p class="technos"><?php foreach (liste_saisie($b['technologies']) as $t): ?><span><?= e($t) ?></span><?php endforeach; ?></p>
<?php endif; ?>
<?php if ($b['description']): ?><p class="description-besoin"><?= nl2br(e($b['description'])) ?></p><?php endif; ?>
</section>
<?php if (peut_ecrire()): ?>
<section class="carte">
<h2><?= e(t('Gestion')) ?></h2>
<details<?= $erreur !== null ? ' open' : '' ?>>
<summary><?= e(t('Modifier le besoin')) ?></summary>
<form method="post" action="<?= e(url('besoin', ['id' => $b['id']])) ?>" class="pile besoin-etroit">
<?= champ_csrf() ?>
<?php require __DIR__ . '/_besoin_champs.php'; ?>
<div class="actions"><button type="submit" name="action" value="modifier" class="secondaire"><?= e(t('Enregistrer')) ?></button></div>
</form>
</details>
<form method="post" action="<?= e(url('besoin', ['id' => $b['id']])) ?>" class="danger"
data-confirmer="<?= e(t('Supprimer ce besoin et la liste des profils proposés ? Les profils eux-mêmes sont conservés.')) ?>">
<?= champ_csrf() ?>
<button type="submit" name="action" value="supprimer" class="dangereux"><?= e(t('Supprimer le besoin')) ?></button>
</form>
</section>
<?php endif; ?>
</aside>
</div>