{% extends 'layout/app.html.twig' %} {% block title %}Dossier {{ dossier.reference }}{% endblock %} {% block page_title %}Dossier {{ dossier.reference }}{% endblock %} {% set token = csrf_token('dossier-action-' ~ dossier.id) %} {% macro action_form(dossier, token, action, button, button_class, body, confirm) %}
{% endmacro %} {% block page_actions %} ← Dossiers {% if 'edit' in actions %} Modifier {% endif %} {% endblock %} {% block content %} {# En-tête #}{{ dossier.embassy.name }} · {{ dossier.visaType.label }} {% if dossier.travelDate %} · Voyage prévu le {{ dossier.travelDate|date('d/m/Y') }}{% endif %}
Agent
{{ dossier.assignedAgent ? dossier.assignedAgent.fullName : 'Non affecté' }}
{{ dossier.status.value == 'REJETE' ? 'Resoumettre en ligne' : 'Soumission en ligne' }}
Étape 3 — dépôt de la demande sur la plateforme de l'ambassade. {% if dossier.embassy.platformUrl %}Ouvrir la plateforme ↗{% endif %}
{% set body %} {% endset %} {{ _self.action_form(dossier, token, 'submit_online', 'Enregistrer la soumission', 'btn-primary', body) }}Papier de validation récupéré
Étape 5 — joignez d'abord le document (catégorie « Papier de validation ») dans les pièces ci-dessous. {% if not dossier.hasValidationDocument %}Aucun papier de validation joint.{% endif %}
{% set body %}{% endset %} {{ _self.action_form(dossier, token, 'validation_received', 'Marquer prêt pour le dépôt', 'btn-primary', body) }}Avis de l'ambassade
Un avis défavorable renvoie le dossier à la soumission en ligne.
{% set body %} {% endset %} {{ _self.action_form(dossier, token, 'decision', 'Enregistrer l\'avis', 'btn-accent', body) }}Récupération du dossier
Le dispatcher a retiré le dossier à l'ambassade : confirmez que vous l'avez récupéré.
{% set body %}{% endset %} {{ _self.action_form(dossier, token, 'collect', 'J\'ai récupéré le dossier', 'btn-primary', body) }}Restitution au client
{% if dossier.fullyPaid %}Honoraires soldés : vous pouvez restituer le dossier et clôturer le traitement.
{% set body %}{% endset %} {{ _self.action_form(dossier, token, 'close', 'Restituer et clôturer', 'btn-primary', body, 'Confirmer la restitution du dossier au client ?') }} {% elseif 'force_close' in actions %}Solde restant : {{ dossier.balance|fcfa }}. En tant que {{ app.user.mainRole.label|lower }}, vous pouvez forcer la clôture avec un motif.
{% set body %} {% endset %} {{ _self.action_form(dossier, token, 'close', 'Forcer la restitution', 'btn-danger', body, 'Restituer le dossier malgré le solde impayé ?') }} {% else %}Solde restant : {{ dossier.balance|fcfa }}. Encaissez le solde avant de restituer le dossier.
{% endif %}{{ dossier.assignedAgent ? 'Réaffecter' : 'Affecter' }} le dossier
L'agent sera notifié et seul lui verra le dossier.
{% set body %} {% endset %} {{ _self.action_form(dossier, token, 'assign', 'Affecter', 'btn-primary', body) }}Note de suivi
Étape 4 — suivi sur la plateforme, échanges avec le client…
{% set body %}{% endset %} {{ _self.action_form(dossier, token, 'tracking_note', 'Ajouter la note', 'btn-secondary', body) }}Annuler le dossier
Abandon de la demande par le client, doublon…
{% set body %}{% endset %} {{ _self.action_form(dossier, token, 'cancel', 'Annuler le dossier', 'btn-danger', body, 'Annuler définitivement ce dossier ?') }}Aucune pièce jointe.
{% else %}{{ document.originalName }} · {{ document.size|filesize }} · {{ document.uploadedAt|date }}{% if document.uploadedBy %} · {{ document.uploadedBy.fullName }}{% endif %}
{{ event.type.label }} {% if event.toStatus %}{{ event.toStatus.shortLabel }}{% endif %}
{% if event.comment %}{{ event.comment }}
{% endif %}{{ event.createdAt|date }}{% if event.actor %} · {{ event.actor.fullName }}{% endif %}
Autres dossiers du client
{% for other in dossier.client.dossiers|filter(d => d.id != dossier.id) %}{% if is_granted('DOSSIER_VIEW', other) %}{{ other.reference }}{% else %}{{ other.reference }}{% endif %} — {{ other.embassy.name }} ({{ other.status.shortLabel }})
{% endfor %}{{ dossier.notes }}
{% endif %}Convenus
{{ dossier.feeAmount|fcfa }}
Payé
{{ dossier.paidAmount|fcfa }}
Solde
{{ dossier.balance|fcfa }}
{{ payment.amount|fcfa }} · {{ payment.method.label }}
{{ payment.receivedAt|date('d/m/Y') }} · {{ payment.receivedBy.fullName }}