<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta name="keywords" content="index de l'application" />
<meta name="description" content="index de l'application" />
<style>
.val-date {
text-align: left;
}
.val-circuit { margin: 0; padding: 0; }
.val-section { margin-bottom: 6px; }
.val-row {
display: flex;
align-items: stretch;
border: 0.5px solid #e5e7eb;
border-radius: 8px;
overflow: hidden;
background: #fff;
}
{# Label bleu gauche — identique pour tous les niveaux #}
.val-label {
min-width: 175px;
max-width: 175px;
background: var(--accent2);
color: #fff;
font-size: .72rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
padding: 11px 14px;
white-space: nowrap;
text-align: left;
}
{# Grille auto-fit — s'adapte automatiquement de 1 à 8 slots
sans aucune modification du HTML selon le nombre de slots actifs #}
.val-grid {
flex: 1;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
{# Slot individuel — identique pour chefs de projet ET directeurs DP #}
.val-slot {
padding: 8px 12px;
border-left: 0.5px solid #e5e7eb;
border-bottom: 0.5px solid #e5e7eb;
display: flex;
flex-direction: column;
gap: 4px;
min-width: 0;
}
.val-slot:last-child { border-bottom: none; }
{# Sous-titre du slot : projet/bailleur pour chefs, CC pour DP, vide pour niveaux uniques #}
.slot-sub {
font-size: 11px;
color: #9ca3af;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
{# Badges — états possibles d'un slot #}
.val-badge {
display: inline-flex;
align-items: center;
gap: 5px;
border-radius: 6px;
padding: 3px 8px;
font-size: 12px;
width: fit-content;
}
.val-badge.signed { background: #f0fdf4; color: var(--accent2); border: 0.5px solid #bbf7d0; }
.val-badge.refused { background: #fef2f2; color: #991b1b; border: 0.5px solid #fecaca; }
.val-badge.pending { background: #fffbeb; color: #92400e; border: 0.5px solid #fde68a; }
.val-badge.locked { background: #f9fafb; color: #9ca3af; border: 0.5px solid #e5e7eb; }
.val-date { font-size: 11px; color: #9ca3af; }
{# Boutons approuver/rejeter — identiques pour tous les niveaux #}
.val-btns { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 3px; }
.btn-approve {
display: inline-flex; align-items: center; gap: 4px;
background: #f0fdf4; color: #166534; border: 0.5px solid #bbf7d0;
border-radius: 6px; padding: 4px 10px; font-size: 12px; cursor: pointer;
}
.btn-approve:hover { background: #dcfce7; }
.btn-reject {
display: inline-flex; align-items: center; gap: 4px;
background: #fef2f2; color: #991b1b; border: 0.5px solid #fecaca;
border-radius: 6px; padding: 4px 10px; font-size: 12px; cursor: pointer;
}
.btn-reject:hover { background: #fee2e2; }
.val-row.not-required { opacity: 0.4; pointer-events: none; }
.custom-table td {
font-size: 13px;
font-weight: 600;
letter-spacing: 0.3px;
}
.col-designation {
width: 200px; /* réduit */
max-width: 200px;
word-break: break-word;
}
.col-pu {
width: 100px; /* augmente */
min-width: 100px;
text-align: right;
}
.col-bail {
width: 100px; /* réduit */
max-width: 100px;
word-break: break-word;
}
.col-descrip {
width: 100px; /* augmente */
min-width: 100px;
text-align: left;
word-break: break-word;
}
@font-face {
font-family: 'DM Sans';
src: url('{{ asset('fonts/dm-sans-v17-latin-300.woff2') }}') format('woff2');
font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
font-family: 'DM Sans';
src: url('{{ asset('fonts/dm-sans-v17-latin-regular.woff2') }}') format('woff2');
font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
font-family: 'DM Sans';
src: url('{{ asset('fonts/dm-sans-v17-latin-500.woff2') }}') format('woff2');
font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
font-family: 'DM Sans';
src: url('{{ asset('fonts/dm-sans-v17-latin-600.woff2') }}') format('woff2');
font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
font-family: 'DM Sans';
src: url('{{ asset('fonts/dm-sans-v17-latin-700.woff2') }}') format('woff2');
font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
font-family: 'DM Mono';
src: url('{{ asset('fonts/dm-mono-v16-latin-300.woff2') }}') format('woff2');
font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
font-family: 'DM Mono';
src: url('{{ asset('fonts/dm-mono-v16-latin-regular.woff2') }}') format('woff2');
font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
font-family: 'DM Mono';
src: url('{{ asset('fonts/dm-mono-v16-latin-500.woff2') }}') format('woff2');
font-weight: 500; font-style: normal; font-display: swap;
}
.da-wrap { font-family: 'DM Sans', sans-serif !important; }
:root {
--bg: #f4f6f9;
--surface: #ffffff;
--surface2: #f0f3f7;
--border: #dde3ed;
--accent: #1a56db;
--accent2: #0e3fa8;
--success: #0e9f6e;
--warning: #e3a008;
--danger: #e02424;
--info: #0694a2;
--text: #111827;
--muted: #6b7280;
--radius: 10px;
--shadow: 0 2px 12px rgba(0,0,0,.07);
--shadow-lg: 0 8px 32px rgba(0,0,0,.12);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'DM Sans','Lato', sans-serif;
font-size: 14px;
}
/* ── Page wrapper ── */
.da-page {
max-width: 1600px;
margin: 0 auto;
padding: 24px 16px 48px;
width: 100%;
}
/* ── Header ── */
.da-header {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 16px;
background: var(--surface);
border-radius: var(--radius);
padding: 20px 28px;
box-shadow: var(--shadow);
margin-bottom: 20px;
border-left: 5px solid var(--accent);
}
.da-header__brand {
display: flex;
align-items: center;
gap: 16px;
}
.da-header__brand img {
height: 52px;
object-fit: contain;
}
.da-header__title {
font-size: 1.4rem;
font-weight: 700;
color: var(--accent2);
letter-spacing: -.3px;
}
.da-header__sub {
font-family: 'DM Mono', monospace;
font-size: .78rem;
color: var(--muted);
margin-top: 2px;
}
/* ── Actions bar ── */
.da-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
background: var(--surface);
border-radius: var(--radius);
padding: 14px 20px;
box-shadow: var(--shadow);
margin-bottom: 20px;
align-items: center;
width: 100%;
}
.da-actions .btn {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 7px 16px;
border-radius: 7px;
font-size: .82rem;
font-weight: 800;
font-family: 'DM Sans', sans-serif;
border: none;
cursor: pointer;
text-decoration: none;
transition: filter .15s, transform .1s;
}
.da-actions .btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.da-actions .btn:active { transform: translateY(0); }
.btn-primary { background: var(--accent); color: #fff; }
.btn-success { background: var(--success); color: #fff; }
.btn-danger { background: var(--danger); color: #fff; }
.btn-warning { background: var(--warning); color: #fff; }
.btn-info { background: var(--info); color: #fff; }
.btn-outline { background: transparent; color: var(--danger); border: 1.5px solid var(--danger); }
.btn-secondary { background: var(--surface2); color: var(--text); border: 1.5px solid var(--border); }
.btn-xs { padding: 5px 12px; font-size: .78rem; }
/* ── Info Grid ── */
.da-info-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 14px;
margin-bottom: 20px;
}
.da-info-card {
background: var(--surface);
border-radius: var(--radius);
padding: 16px 20px;
box-shadow: var(--shadow);
display: flex;
flex-direction: column;
gap: 4px;
}
.da-info-card__label {
font-size: .72rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: .06em;
color: var(--muted);
}
.da-info-card__value {
font-size: .98rem;
font-weight: 600;
color: var(--text);
}
.da-info-card__sig {
font-size: .8rem;
color: var(--muted);
font-style: italic;
text-decoration: line-through;
}
/* Statut badge */
.badge {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 3px 10px;
border-radius: 20px;
font-size: .75rem;
font-weight: 700;
letter-spacing: .04em;
}
.badge-success { background: #d1fae5; color: #065f46; }
.badge-warning { background: #fef3c7; color: #92400e; }
/* ── Objet band ── */
.da-objet {
background: var(--surface);
border-radius: var(--radius);
padding: 14px 20px;
box-shadow: var(--shadow);
margin-bottom: 20px;
font-weight: 500;
color: var(--text);
border-left: 4px solid var(--info);
}
.da-objet span { color: var(--muted); font-weight: 400; }
/* ── Table ── */
.da-table-wrap {
background: var(--surface);
border-radius: var(--radius);
box-shadow: var(--shadow);
overflow: hidden;
margin-bottom: 20px;
}
.da-table-wrap table {
width: 100%;
border-collapse: collapse;
}
.da-table-wrap thead th {
background: var(--accent2);
color: #fff;
font-size: .72rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .07em;
padding: 11px 14px;
white-space: nowrap;
text-align: left;
}
.da-table-wrap tbody tr {
border-bottom: 1px solid var(--border);
transition: background .12s;
}
.da-table-wrap tbody tr:last-child { border-bottom: none; }
.da-table-wrap tbody tr:hover { background: var(--surface2); }
.da-table-wrap tbody td {
padding: 10px 14px;
font-size: .84rem;
vertical-align: middle;
color: var(--text);
}
.da-table-wrap tbody td.num {
font-family: 'DM Mono', monospace;
font-size: .82rem;
text-align: right;
}
.da-table-wrap tbody td .reject-reason {
font-size: .76rem;
color: var(--danger);
font-style: italic;
margin-top: 2px;
}
.col-designation { min-width: 160px; }
.col-descrip { min-width: 130px; color: var(--muted) !important; font-size: .8rem !important; }
.col-pu, .col-total { text-align: right; }
.da-table-wrap td img { vertical-align: middle; margin-left: 4px; }
/* ── Add row trigger ── */
.da-add-row td {
padding: 8px 14px !important;
background: var(--surface2);
}
/* ── Recap / totals + validations ── */
.da-bottom {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 18px;
margin-bottom: 20px;
}
@media (max-width: 768px) {
.da-bottom { grid-template-columns: 1fr; }
}
.da-validations, .da-totals {
background: var(--surface);
border-radius: var(--radius);
box-shadow: var(--shadow);
padding: 20px 24px;
}
.da-section-title {
font-size: .7rem;
font-weight: 700;
text-transform: uppercase;
letter-spacing: .1em;
color: var(--muted);
margin-bottom: 16px;
padding-bottom: 8px;
border-bottom: 1px solid var(--border);
}
/* Validations */
.da-valid-row {
display: flex;
align-items: flex-start;
gap: 12px;
padding: 10px 0;
border-bottom: 1px solid var(--border);
}
.da-valid-row:last-child { border-bottom: none; }
.da-valid-row__icon {
width: 32px;
height: 32px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
flex-shrink: 0;
}
.icon-pending { background: #fef3c7; color: var(--warning); }
.icon-ok { background: #d1fae5; color: var(--success); }
.icon-rejected { background: #fee2e2; color: var(--danger); }
.da-valid-row__body { flex: 1; }
.da-valid-row__name { font-weight: 600; font-size: .84rem; }
.da-valid-row__meta { font-size: .75rem; color: var(--muted); margin-top: 2px; }
.da-valid-row__sig { font-style: italic; text-decoration: line-through; font-size: .75rem; color: var(--accent); }
.da-valid-row__actions { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
/* Totals */
.da-totals-table { width: 100%; }
.da-totals-table tr td {
padding: 8px 0;
font-size: .88rem;
border-bottom: 1px solid var(--border);
}
.da-totals-table tr:last-child td { border-bottom: none; }
.da-totals-table .t-label {
color: var(--muted);
font-weight: 500;
}
.da-totals-table .t-value {
font-family: 'DM Mono', monospace;
font-weight: 700;
text-align: right;
font-size: .92rem;
}
.da-totals-table .t-ttc .t-label,
.da-totals-table .t-ttc .t-value {
font-size: 1.05rem;
color: var(--accent2);
}
/* TVA inline form */
.tva-form {
display: inline-flex;
align-items: center;
gap: 6px;
}
.tva-form select, .tva-form input[type="number"] {
border: 1.5px solid var(--border);
border-radius: 6px;
padding: 3px 8px;
font-family: 'DM Sans', sans-serif;
font-size: .82rem;
color: var(--text);
background: var(--surface2);
outline: none;
transition: border-color .15s;
width: 70px;
}
.tva-form select:focus, .tva-form input:focus { border-color: var(--accent); }
/* ── Pièce jointe ── */
.da-attachment {
background: var(--surface);
border-radius: var(--radius);
box-shadow: var(--shadow);
padding: 18px 24px;
margin-bottom: 20px;
display: flex;
align-items: center;
gap: 16px;
flex-wrap: wrap;
border-left: 4px solid var(--warning);
}
.da-attachment__icon {
font-size: 1.8rem;
color: var(--warning);
}
.da-attachment__label {
font-weight: 600;
font-size: .9rem;
color: var(--text);
}
.da-attachment__sub {
font-size: .78rem;
color: var(--muted);
}
/* Loaders */
.loader-img { vertical-align: middle; display: none; }
/* ── Responsive table scroll ── */
.da-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
/* ── Print ── */
@media print {
.da-actions, .da-attachment { display: none; }
.da-page { padding: 0; }
}
/* ── Mobile ── */
@media (max-width: 600px) {
.da-header { flex-direction: column; text-align: center; }
.da-header__brand { flex-direction: column; }
.da-table-wrap thead { display: none; }
.da-table-wrap tbody td {
display: flex;
justify-content: space-between;
padding: 6px 14px;
font-size: .82rem;
}
.da-table-wrap tbody td::before {
content: attr(data-label);
font-weight: 700;
color: var(--muted);
font-size: .72rem;
text-transform: uppercase;
margin-right: 8px;
flex-shrink: 0;
}
.da-table-wrap tbody tr {
display: block;
border: 1px solid var(--border);
border-radius: 8px;
margin: 8px 12px;
}
}
.custom-statu {
font-size: 13px;
font-weight: 600;
letter-spacing: 0.3px;
}
</style>
<script>
$(document).ready(function () {
$('.monModal').on('show.bs.modal', function (e) {
var button = $(e.relatedTarget);
var url = button.data('url');
var modal = $(this);
if (!url) return;
modal.find('.modal-body').html('<div class="text-center">Loading...</div>');
$.ajax({
url: url,
method: 'GET',
success: function (data) {
modal.find('.modal-body').html(data);
},
error: function () {
modal.find('.modal-body').html('Erreur de chargement');
}
});
});
$('.monModal').on('hidden.bs.modal', function () {
$(this).find('.modal-body').html('');
});
});
</script>
<script>
$(document).ready(function () {
let currentDemAchatId = null;
// ✅ Délégation d'événement — capture aussi les boutons ajoutés dynamiquement
$(document).on('click', '[data-target="#modalUpload"]', function () {
currentDemAchatId = $(this).data('id');
const fichier = $(this).data('fichier');
const url = $(this).data('url');
// Reset
$('#pieceJointeFile').val('');
$('#uploadAlert').addClass('d-none').html('');
$('#uploadProgress').addClass('d-none');
$('#downloadSection').addClass('d-none');
// Afficher le fichier existant si présent
if (fichier) {
const icone = getIconeFichier(fichier);
$('#iconeFichierExistant').html(icone + ' ');
$('#lienFichierExistant').attr('href', url).text(fichier);
$('#fichierExistant').removeClass('d-none');
} else {
$('#fichierExistant').addClass('d-none');
}
});
// Clic sur "Envoyer"
$('#btnUpload').on('click', function () {
const file = $('#pieceJointeFile')[0].files[0];
if (!file) {
afficherAlerte('danger', 'Veuillez sélectionner un fichier.');
return;
}
// Vérification taille max : 5 Mo
const maxSize = 5 * 1024 * 1024;
if (file.size > maxSize) {
afficherAlerte('danger', 'Le fichier est trop volumineux. Taille max : 5 Mo.');
return;
}
const formData = new FormData();
formData.append('pieceJointe', file);
$('#uploadProgress').removeClass('d-none');
$('#btnUpload').prop('disabled', true);
$('#uploadAlert').addClass('d-none');
$.ajax({
url: '/dem-achat/' + currentDemAchatId + '/upload',
type: 'POST',
data: formData,
processData: false,
contentType: false,
success: function (response) {
$('#uploadProgress').addClass('d-none');
$('#btnUpload').prop('disabled', false);
if (response.success) {
afficherAlerte('success', response.message);
const icone = getIconeFichier(response.filename);
// Lien dans le modal
$('#downloadLink')
.attr('href', response.downloadUrl)
.html(icone + ' Télécharger la pièce jointe');
$('#downloadSection').removeClass('d-none');
// Mise à jour sur la page DA
$('#pjSection').html(`
<a href="${response.downloadUrl}" target="_blank" class="btn btn-success btn-sm">
${icone} Télécharger la pièce jointe
</a>
<button class="btn btn-warning btn-sm ml-2"
data-toggle="modal" data-target="#modalUpload"
data-id="${currentDemAchatId}"
data-fichier="${response.filename}"
data-url="${response.downloadUrl}">
<i class="fas fa-sync"></i> Remplacer
</button>
`);
} else {
afficherAlerte('danger', response.message);
}
},
error: function (xhr) {
$('#uploadProgress').addClass('d-none');
$('#btnUpload').prop('disabled', false);
const msg = xhr.responseJSON?.message || 'Erreur serveur.';
afficherAlerte('danger', msg);
}
});
});
// Icône selon le type de fichier
function getIconeFichier(filename) {
const ext = filename.split('.').pop().toLowerCase();
const icones = {
'pdf' : '<i class="fas fa-file-pdf text-danger"></i>',
'doc' : '<i class="fas fa-file-word text-primary"></i>',
'docx' : '<i class="fas fa-file-word text-primary"></i>',
'xls' : '<i class="fas fa-file-excel text-success"></i>',
'xlsx' : '<i class="fas fa-file-excel text-success"></i>',
'png' : '<i class="fas fa-file-image text-warning"></i>',
'jpeg' : '<i class="fas fa-file-image text-warning"></i>',
'txt' : '<i class="fas fa-file-alt text-secondary"></i>',
};
return icones[ext] || '<i class="fas fa-file text-secondary"></i>';
}
// Afficher alerte
function afficherAlerte(type, message) {
$('#uploadAlert')
.removeClass('d-none alert-success alert-danger')
.addClass('alert alert-' + type)
.html(message);
}
});
</script>
<script>
$("#imgrefuacha").hide();
$("#imgrespacha").hide();
$("#imginfo").hide();
$("#imggarag").hide();
$("#imgrefuinfo").hide();
$("#imgrefugarag").hide();
$("#loadr").hide();
$("#loadrr").hide();
$("#loadp").hide();
$("#loadpr").hide();
$("#loaders").hide();
$("#loadiscus").hide();
$("#lods").hide();
$("#lod").hide();
$("#lad").hide();
$("#loads").hide();
$("#imglead").hide();
$("#imglea").hide();
$("#imgchef").hide();
$("#imgche").hide();
$("#tva").hide();
$("#loareg").hide();
$("#loadreg").hide();
$("#loasuph").hide();
$("#loasuphr").hide();
$("#charg").hide();
$("#loamedical").hide();
$("#loamedicalr").hide();
$("#loadbc").hide();Sanscc
$("#Sanscc").hide();
</script>
<script>
$('#signdrmedicalrefu').click(function()
{
$("#signdrmedicalrefu").hide();
$("#loamedicalr").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drmedicalrefu')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loamedicalr").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#signdrmedical').click(function()
{
$("#signdrmedical").hide();
$("#loamedical").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drapodrmedical')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loamedical").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#charge').click(function()
{
$('#charge').hide();
$('#charg').show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drapoCharge')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
if (data.message) {
$('#charg').hide();
$('#charge').show();
alert(data.message); // ou utilisez une autre méthode pour afficher le message
}
else {
$('#charg').hide();
$('#charge').show();
$('#liste').html(data);
}
}
});
});
</script>
<script>
$('#grille').click(function()
{
$("#load").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_list_grille')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#load").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#validtech1').click(function()
{
$("#validtech1").hide();
$("#imginfo").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_valid_tech1')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#imginfo").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#validtech1refu').click(function()
{
$("#validtech1refu").hide();
$("#imgrefuinfo").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_valid_tech1_refu')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#imgrefuinfo").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#validtech2').click(function()
{
$("#validtech2").hide();
$("#imggarag").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_valid2')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#imggarag").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#validtech2refu').click(function()
{
$("#validtech2refu").hide();
$("#imgrefugarag").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_valid2_refu')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#imgrefugarag").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#correct').click(function()
{
$("#correct").hide();
$.ajax({
type : 'POST',
url : '{{ path('ajax_correction_da')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
alert('vous pouvez effectuer les corrections sur la DA!');
$('#liste').html(data);
}
});
});
</script>
<script>
$('#monlistnum10').change(function()
{
$("#tva").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_mod_tva')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val()+
'&tva=' + $('#form_tva').val(),
})
.done(function(response)
{
$("#tva").hide();
$('#liste').html(response);
})
.fail(function(jqXHR, textStatus, errorThrown)
{
$("#load").hide();
alert('Error : ' + errorThrown);
});
return false;
});
</script>
<script>
$('#bcSanscc').click(function()
{
$("#Sanscc").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_ca_sans_contrat')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#Sanscc").hide();
if (data.message) {
alert(data.message);
}
}
});
});
</script>
<script>
$('#bc').click(function()
{
$("#loadbc").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_create_ca_contrat')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loadbc").hide();
//$('#liste').html(data);
if (data.message) {
alert(data.message);
}
}
});
});
</script>
<script>
$('#suph').click(function()
{
$("#suph").hide();
$("#loasuph").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_draposuph')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loasuph").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#suphrefu').click(function()
{
$("#suphrefu").hide();
$("#loasuphr").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_draposuphrefu')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loasuphr").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#signrespacha').click(function()
{
$("#signrespacha").hide();
$("#imgrespacha").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_draporacha')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#imgrespacha").hide();
if (data.message) {
$("#signrespacha").show();
alert(data.message); // ou utilisez une autre méthode pour afficher le message
}
else
$('#liste').html(data);
}
});
});
</script>
<script>
$('#refurespacha').click(function()
{
$("#refurespacha").hide();
$("#imgrefuacha").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_draporacharefu')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#imgrefuacha").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#signreg').click(function()
{
$("#signreg").hide();
$("#loareg").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_draporespreg')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loareg").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#signregrefu').click(function()
{
$("#signregrefu").hide();
$("#loadreg").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_draporespregrefu')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loadreg").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#signlead').click(function()
{
$("#signlead").hide();
$("#imglead").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drapolead')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#imglead").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#leadrefu').click(function()
{
$("#leadrefu").hide();
$("#imglea").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drapoleadrefu')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#imglea").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#signchef').click(function()
{
$("#signchef").hide();
$("#imgchef").show();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drapochefp')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#imgchef").hide();
if (data.message) {
$("#signchef").show();
alert(data.message); // ou utilisez une autre méthode pour afficher le message
}
else
$('#liste').html(data);
}
});
});
</script>
<script>
$('#traiter').click(function()
{
$('#traiter').hide();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drapoTraite')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$('#liste').html(data);
$('#traiter').show();
}
});
});
</script>
<script>
$('#dscsc').click(function()
{
$("#lods").show();
$("#dscsc").hide();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drapodscsc')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#lods").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#dscscrefu').click(function()
{
$("#lod").show();
$("#dscscrefu").hide();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drapodscscrefu')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#lod").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#dp').click(function()
{
$("#loadp").show();
$("#dp").hide();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drapodp')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loadp").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#dprefu').click(function()
{
$("#loadpr").show();
$("#dprefu").hide();
$.ajax({
type : 'POST',
url : '{{ path('ajax_drapodprefu')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loadpr").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#rrrefu').click(function()
{
$("#loadrr").show();
$("#rrrefu").hide();
$.ajax({
type : 'POST',
url : '{{ path('ajax_draporrrefu')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loadrr").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#rr').click(function()
{
$("#loadr").show();
$("#rr").hide();
$.ajax({
type : 'POST',
url : '{{ path('ajax_draporr')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
$("#loadr").hide();
$('#liste').html(data);
}
});
});
</script>
<script>
$('#annul').click(function()
{
$.ajax({
type : 'POST',
url : '{{ path('ajax_annul')}}',
data : 'listnum=' + $('#form_listnum').val()+
'&listnum2=' + $('#form_listnum2').val()+
'&listnum1=' + $('#form_listnum1').val()+
'&listnum5=' + $('#form_listnum5').val()+
'&listnum4=' + $('#form_listnum4').val()+
'&listnum3=' + $('#form_listnum3').val()+
'&listnum7=' + $('#form_listnum7').val()+
'&listnum9=' + $('#form_listnum9').val(),
success: function(data)
{
alert('la demande est annulés!');
$('#liste').html(data);
}
});
});
</script>
</head>
<body>
{% if demachats[0].etat==1 %}
<p> </p>
{% if demachats[0].drapoValide==0 %}
<div align="left">
<div class="table-responsive mb-3">
<table class="table table-bordered table-sm w-auto custom-table">
<thead class="thead-light">
<tr>
<th>Approbateur</th>
<th>Statut</th>
</tr>
</thead>
<tbody>
{% if valid1 !=0 %}
<tr>
<td > {{utiltecinfo.prenom}} {{utiltecinfo.nom}} (review Technique)</td>
<td >
{% if demachats[0].drapoInfo == 1 %}
<span class="badge badge-success">Approuvé</span>
{% elseif demachats[0].drapoInforefu == 1 %}
<span class="badge badge-danger">Rejeté</span>
{% else %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if valid2 !=0 %}
<tr>
<td >{{utiltecgarag.prenom}} {{utiltecgarag.nom}} (review Technique)</td>
<td>
{% if demachats[0].drapoGarage==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoGaragerefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoGaragerefu==0 and demachats[0].drapoGarage==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
<tr>
<td>{{utilrachat.prenom}} {{utilrachat.nom}}(responsable achat) </td>
<td> {% if demachats[0].drapoRespAcha==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoRespAcharefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoRespAcharefu==0 and demachats[0].drapoRespAcha==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% if nomb ==1 %}
<tr>
<td>{% if suph is not null %}{{suph.prenom}} {{suph.nom}}(superieur hierarchique) {% endif %}</td>
<td>
{% if demachats[0].drapoSup==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoSuprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoSuprefu==0 and demachats[0].drapoSup==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% if usedep is not null %}
<tr>
<td>{{usedep.prenom}} {{usedep.nom}} (Dr département)</td>
<td> {% if demachats[0].drapoDP==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu==0 and demachats[0].drapoDP==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp1 is not null and usedep is null %}
<tr>
<td >{{usedp1.prenom}} {{usedp1.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP1==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu1==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu1==0 and demachats[0].drapoDP1==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp2 is not null and usedep is null %}
<tr>
<td >{{usedp2.prenom}} {{usedp2.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP2==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu2==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu2==0 and demachats[0].drapoDP2==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp3 is not null and usedep is null %}
<tr>
<td >{{usedp3.prenom}} {{usedp3.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP3==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu3==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu3==0 and demachats[0].drapoDP3==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp4 is not null and usedep is null %}
<tr>
<td >{{usedp4.prenom}} {{usedp4.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP1==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu4==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu4==0 and demachats[0].drapoDP4==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp5 is not null and usedep is null %}
<tr>
<td >{{usedp5.prenom}} {{usedp5.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP5==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu5==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu5==0 and demachats[0].drapoDP5==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp6 is not null and usedep is null %}
<tr>
<td >{{usedp6.prenom}} {{usedp6.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP6==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu6==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu6==0 and demachats[0].drapoDP6==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp7 is not null and usedep is null %}
<tr>
<td >{{usedp7.prenom}} {{usedp7.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP7==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu7==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu7==0 and demachats[0].drapoDP7==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp8 is not null and usedep is null %}
<tr>
<td >{{usedp8.prenom}} {{usedp8.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP8==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu8==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu8==0 and demachats[0].drapoDP8==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if demachats[0].montant <2500000 %}
<tr>
<td >{{utildscsc2.prenom}} {{utildscsc2.nom}}(charge des finances) </td>
<td > {% if demachats[0].drapoDSCSC==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDSCSCrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDSCSCrefu==0 and demachats[0].drapoDSCSC==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if demachats[0].montant >2499999 %}
<tr>
<td >{{utildscsc.prenom}} {{utildscsc.nom}} (DAF)</td>
<td > {% if demachats[0].drapoDSCSC==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDSCSCrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDSCSCrefu==0 and demachats[0].drapoDSCSC==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if demachats[0].montant >4999999 %}
<tr>
<td >{{utilrr.prenom}} {{utilrr.nom}}(Country Director) </td>
<td> {% if demachats[0].drapoRR==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoRRrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoRRrefu==0 and demachats[0].drapoRR==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% endif %}
{% if demachats[0].costcenter !=null %}
{% if demachats[0].costcenter.code==13 and nomb ==0 %}
{% if usereg is not null %}
<tr>
<td >{{usereg.prenom}} {{usereg.nom}}(Responsable régional) </td>
<td > {% if demachats[0].drapoRespReg==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoRespRegrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoRespRegrefu==0 and demachats[0].drapoRespReg==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if uselead is not null %}
<tr>
<td>{{uselead.prenom}} {{uselead.nom}}(chanel lead) </td>
<td> {% if demachats[0].drapoLead==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoLeadrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoLeadrefu==0 and demachats[0].drapoLead==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if uselead is null %}
{% if uselead1 is not null %}
<tr>
<td >{{uselead1.uselead.prenom}} {{uselead1.uselead.nom}} (chanel lead)</td>
<td > {% if demachats[0].drapoLead1==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoLeadrefu1==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoLeadrefu1==0 and demachats[0].drapoLead1==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if uselead2 is not null %}
<tr>
<td >{{uselead2.uselead.prenom}} {{uselead1.uselead.nom}} (chanel lead)</td>
<td > {% if demachats[0].drapoLead2==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoLeadrefu2==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoLeadrefu2==0 and demachats[0].drapoLead2==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if uselead3 is not null %}
<tr>
<td >{{uselead3.uselead.prenom}} {{uselead3.uselead.nom}} (chanel lead)</td>
<td > {% if demachats[0].drapoLead3==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoLeadrefu3==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoLeadrefu3==0 and demachats[0].drapoLead3==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if uselead4 is not null %}
<tr>
<td >{{uselead4.uselead.prenom}} {{uselead1.uselead.nom}} (chanel lead)</td>
<td > {% if demachats[0].drapoLead4==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoLeadrefu4==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoLeadrefu4==0 and demachats[0].drapoLead4==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if uselead5 is not null %}
<tr>
<td >{{uselead5.uselead.prenom}} {{uselead5.uselead.nom}} (chanel lead)</td>
<td > {% if demachats[0].drapoLead5==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoLeadrefu5==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoLeadrefu5==0 and demachats[0].drapoLead5==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% endif %}
{% if categmedical==1 %}
<tr>
<td >{{utildrmedical.prenom}} {{utildrmedical.nom}}(Directeur Médical) </td>
<td> {% if demachats[0].drapoDRMEDICAL==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDRMEDICALrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDRMEDICALrefu==0 and demachats[0].drapoDRMEDICAL==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef1 is not null %}
<tr>
<td >{{usechef1.user.prenom}} {{usechef1.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp1==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu1==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu1==0 and demachats[0].drapoChefp1==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef2 is not null %}
<tr>
<td >{{usechef2.user.prenom}} {{usechef2.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp1==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu2==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu2==0 and demachats[0].drapoChefp2==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef3 is not null %}
<tr>
<td >{{usechef3.user.prenom}} {{usechef1.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp3==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu3==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu3==0 and demachats[0].drapoChefp3==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef4 is not null %}
<tr>
<td >{{usechef4.user.prenom}} {{usechef4.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp4==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu4==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu4==0 and demachats[0].drapoChefp4==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef5 is not null %}
<tr>
<td >{{usechef5.user.prenom}} {{usechef5.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp5==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu5==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu5==0 and demachats[0].drapoChefp5==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef6 is not null %}
<tr>
<td >{{usechef6.user.prenom}} {{usechef6.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp6==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu6==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu6==0 and demachats[0].drapoChefp6==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef7 is not null %}
<tr>
<td >{{usechef7.user.prenom}} {{usechef1.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp7==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu7==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu7==0 and demachats[0].drapoChefp7==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedep is not null %}
<tr>
<td>{{usedep.prenom}} {{usedep.nom}} (Dr département)</td>
<td> {% if demachats[0].drapoDP==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu==0 and demachats[0].drapoDP==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp1 is not null and usedep is null %}
<tr>
<td >{{usedp1.prenom}} {{usedp1.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP1==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu1==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu1==0 and demachats[0].drapoDP1==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp2 is not null and usedep is null %}
<tr>
<td >{{usedp2.prenom}} {{usedp2.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP2==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu2==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu2==0 and demachats[0].drapoDP2==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp3 is not null and usedep is null %}
<tr>
<td >{{usedp3.prenom}} {{usedp3.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP3==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu3==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu3==0 and demachats[0].drapoDP3==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp4 is not null and usedep is null %}
<tr>
<td >{{usedp4.prenom}} {{usedp4.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP1==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu4==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu4==0 and demachats[0].drapoDP4==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp5 is not null and usedep is null %}
<tr>
<td >{{usedp5.prenom}} {{usedp5.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP5==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu5==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu5==0 and demachats[0].drapoDP5==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp6 is not null and usedep is null %}
<tr>
<td >{{usedp6.prenom}} {{usedp6.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP6==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu6==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu6==0 and demachats[0].drapoDP6==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp7 is not null and usedep is null %}
<tr>
<td >{{usedp7.prenom}} {{usedp7.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP7==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu7==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu7==0 and demachats[0].drapoDP7==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp8 is not null and usedep is null %}
<tr>
<td >{{usedp8.prenom}} {{usedp8.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP8==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu8==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu8==0 and demachats[0].drapoDP8==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if demachats[0].montant <2500000 %}
<tr>
<td >{{utildscsc2.prenom}} {{utildscsc2.nom}}(charge des finances) </td>
<td > {% if demachats[0].drapoDSCSC==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDSCSCrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDSCSCrefu==0 and demachats[0].drapoDSCSC==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if demachats[0].montant >2499999 %}
<tr>
<td >{{utildscsc.prenom}} {{utildscsc.nom}} (DAF)</td>
<td > {% if demachats[0].drapoDSCSC==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDSCSCrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDSCSCrefu==0 and demachats[0].drapoDSCSC==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if demachats[0].montant >4999999 %}
<tr>
<td >{{utilrr.prenom}} {{utilrr.nom}}(Country Director) </td>
<td> {% if demachats[0].drapoRR==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoRRrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoRRrefu==0 and demachats[0].drapoRR==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% endif %}
{% endif %}
{% if demachats[0].costcenter !=null %}
{% if demachats[0].costcenter.code==61 and nomb ==0 %}
{% if usereg is not null %}
<tr>
<td >{{usereg.prenom}} {{usereg.nom}}(responsable regional) </td>
<td"> {% if demachats[0].drapoRespReg==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoRespRegrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoRespRegrefu==0 and demachats[0].drapoRespReg==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedep is not null %}
<tr>
<td>{{usedep.prenom}} {{usedep.nom}} (Dr département)</td>
<td> {% if demachats[0].drapoDP==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu==0 and demachats[0].drapoDP==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp1 is not null and usedep is null %}
<tr>
<td >{{usedp1.prenom}} {{usedp1.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP1==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu1==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu1==0 and demachats[0].drapoDP1==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp2 is not null and usedep is null %}
<tr>
<td >{{usedp2.prenom}} {{usedp2.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP2==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu2==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu2==0 and demachats[0].drapoDP2==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp3 is not null and usedep is null %}
<tr>
<td >{{usedp3.prenom}} {{usedp3.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP3==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu3==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu3==0 and demachats[0].drapoDP3==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp4 is not null and usedep is null %}
<tr>
<td >{{usedp4.prenom}} {{usedp4.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP1==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu4==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu4==0 and demachats[0].drapoDP4==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp5 is not null and usedep is null %}
<tr>
<td >{{usedp5.prenom}} {{usedp5.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP5==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu5==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu5==0 and demachats[0].drapoDP5==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp6 is not null and usedep is null %}
<tr>
<td >{{usedp6.prenom}} {{usedp6.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP6==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu6==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu6==0 and demachats[0].drapoDP6==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp7 is not null and usedep is null %}
<tr>
<td >{{usedp7.prenom}} {{usedp7.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP7==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu7==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu7==0 and demachats[0].drapoDP7==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usedp8 is not null and usedep is null %}
<tr>
<td >{{usedp8.prenom}} {{usedp8.nom}} (Dr département)</td>
<td > {% if demachats[0].drapoDP8==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDPrefu8==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDPrefu8==0 and demachats[0].drapoDP8==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef1 is not null %}
<tr>
<td >{{usechef1.user.prenom}} {{usechef1.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp1==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu1==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu1==0 and demachats[0].drapoChefp1==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef2 is not null %}
<tr>
<td >{{usechef2.user.prenom}} {{usechef2.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp1==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu2==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu2==0 and demachats[0].drapoChefp2==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef3 is not null %}
<tr>
<td >{{usechef3.user.prenom}} {{usechef1.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp3==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu3==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu3==0 and demachats[0].drapoChefp3==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef4 is not null %}
<tr>
<td >{{usechef4.user.prenom}} {{usechef4.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp4==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu4==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu4==0 and demachats[0].drapoChefp4==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef5 is not null %}
<tr>
<td >{{usechef5.user.prenom}} {{usechef5.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp5==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu5==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu5==0 and demachats[0].drapoChefp5==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef6 is not null %}
<tr>
<td >{{usechef6.user.prenom}} {{usechef6.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp6==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu6==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu6==0 and demachats[0].drapoChefp6==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if usechef7 is not null %}
<tr>
<td >{{usechef7.user.prenom}} {{usechef7.user.nom}} (chef de projet)</td>
<td > {% if demachats[0].drapoChefp7==1 or demachats[0].drapoChefp==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoChefprefu7==1 or demachats[0].drapoChefprefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoChefprefu7==0 and demachats[0].drapoChefp7==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if demachats[0].montant <2500000 %}
<tr>
<td >{{utildscsc2.prenom}} {{utildscsc2.nom}}(charge des finances) </td>
<td > {% if demachats[0].drapoDSCSC==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDSCSCrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDSCSCrefu==0 and demachats[0].drapoDSCSC==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if demachats[0].montant >2499999 %}
<tr>
<td >{{utildscsc.prenom}} {{utildscsc.nom}} (DAF)</td>
<td > {% if demachats[0].drapoDSCSC==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoDSCSCrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoDSCSCrefu==0 and demachats[0].drapoDSCSC==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% if demachats[0].montant >4999999 %}
<tr>
<td >{{utilrr.prenom}} {{utilrr.nom}}(Country Director) </td>
<td> {% if demachats[0].drapoRR==1 %}
<span class="badge badge-success">Approuvé </span>
{% elseif demachats[0].drapoRRrefu==1 %}
<span class="badge badge-danger">rejeté</span>
{% elseif demachats[0].drapoRRrefu==0 and demachats[0].drapoRR==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</td>
</tr>
{% endif %}
{% endif %}
{% endif %}
</tbody>
</table>
</div>
</div>
{% endif %}
{% set total2 = 0 %}{% set var = 0 %}
<div class="da-page">
{# ── ACTIONS ── #}
<div class="da-actions d-flex">
{% if demachats[0].drapoDRMEDICALrefu==1 or demachats[0].drapoGaragerefu==1
or demachats[0].drapoChefprefu1==1 or demachats[0].drapoChefprefu7==1
or demachats[0].drapoChefprefu6==1 or demachats[0].drapoChefprefu5==1
or demachats[0].drapoChefprefu4==1 or demachats[0].drapoChefprefu3==1
or demachats[0].drapoChefprefu2==1 or demachats[0].drapoDPrefu1==1
or demachats[0].drapoDPrefu2==1 or demachats[0].drapoDPrefu3==1
or demachats[0].drapoDPrefu4==1 or demachats[0].drapoDPrefu5==1
or demachats[0].drapoDPrefu6==1 or demachats[0].drapoDPrefu7==1
or demachats[0].drapoDPrefu8==1 or demachats[0].drapoLeadrefu1==1
or demachats[0].drapoLeadrefu2==1 or demachats[0].drapoLeadrefu3==1
or demachats[0].drapoLeadrefu4==1 or demachats[0].drapoLeadrefu5==1
or demachats[0].drapoRespRegrefu==1 or demachats[0].drapoRespAcharefu==1
or demachats[0].drapoDSCSCrefu==1 or demachats[0].drapoDPrefu==1
or demachats[0].drapoRRrefu==1 or demachats[0].drapoSuprefu==1
or demachats[0].drapoLeadrefu==1 or demachats[0].drapoChefprefu==1 %}
{% set var = 1 %}
{% if demachats[0].user.username == user.username %}
<button id="correct" class="btn btn-warning">✏️ Corriger</button>
{% endif %}
{% endif %}
{% if is_granted('ROLE_ADMIN') %}
<a id="annul" data-toggle="modal" data-backdrop="false" href="#suppr" class="btn btn-outline">🗑 Annuler</a>
{% endif %}
<a href="{{ path('excel_export',{'id_dem': demachats[0].id}) }}" class="btn btn-secondary">📊 Excel</a>
<a href="{{ path('imprim_demachat',{'id': demachats[0].id}) }}" target="_blank" class="btn btn-secondary">📄 PDF</a>
{% if demachats[0].drapoValide==1 or demachats[0].costcenter==null %}
{% set var=2 %}
{% if is_granted('ROLE_RACHAT') or is_granted('ROLE_DIRECT_APPROV') %}
<button id="traiter" class="btn btn-secondary">⚙️ Traiter</button>
{% if demachats[0].drapoCC==1%}
<button id="bc" class="btn btn-secondary">📋 Générer BC contrat</button>
<img id="loadbc" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
{% endif %}
{% if demachats[0].drapoSansCC==1%}
<button id="bcSanscc" class="btn btn-secondary">📋 Générer BC sans contrat </button>
<img id="Sanscc" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
{% endif %}
{% if da_sans_cc is not null%}
<a href="{{ path('cotation_new', {daId: da_sans_cc.id}) }}"
class="btn btn-sm btn-primary" title="Créer une cotation">
<i class="fas fa-file-invoice-dollar"></i> Cotation
</a>
{% endif %}
<button id="grille" class="btn btn-secondary">📑 Grille</button>
{% endif %}
{% endif %}
{% if demachats[0].user.username == user.username %}
<div style="display:flex; gap:8px; flex-wrap:wrap;">
{% if demachats[0].pieceJointe %}
<a href="{{ asset('uploads/dem_achat/' ~ demachats[0].pieceJointe) }}" target="_blank" class="btn btn-secondary">⬇ Teléchargé PJ</a>
<button class="btn btn-secondary"
data-toggle="modal" data-target="#modalUpload"
data-id="{{ demachats[0].id }}"
data-fichier="{{ demachats[0].pieceJointe }}"
data-url="{{ demachats[0].pieceJointe ? asset('uploads/dem_achat/' ~ demachats[0].pieceJointe) : '' }}">
🔄 Remplacer PJ
</button>
{% else %}
<button class="btn btn-secondary"
data-toggle="modal" data-target="#modalUpload"
data-id="{{ demachats[0].id }}"
data-fichier=""
data-url="">
📎 Joindre PJ
</button>
{% endif %}
</div>
{% endif %}
</div>
{# ── HEADER ── #}
<div class="da-header">
<div class="da-header__brand">
<img src="{{ asset('img/stope.jpg') }}" alt="Logo">
<div>
<div class="da-header__title">Demande d'Achat N°{{ "%05d"|format(numach) }}/{{ demachats[0].dateSoumis|date("Y") }}</div>
<div class="da-header__sub">Soumise le {{ demachats[0].dateSoumis|date('d/m/Y') }}</div>
</div>
</div>
<div class=" custom-statue">
{% if cloture==1 %}
<span class="badge badge-success">Clôturé </span>
{% elseif var==2 %}
<span class="badge badge-success">Approuvé </span>
{% elseif var==1 %}
<span class="badge badge-danger custom-statu">rejeté</span>
{% elseif var==0 %}
<span class="badge badge-warning">En attente</span>
{% endif %}
</div>
</div>
<div class="da-actions">
<div class="da-info-card">
<div class="da-info-card__label">Soumise par</div>
<div class="da-info-card__label">{{ demachats[0].user.nom }} {{ demachats[0].user.prenom }}</div>
<div class="da-info-card__sig">{{ demachats[0].user.username }}</div>
</div>
<div class="da-info-card">
<div class="da-info-card__label">Date de soumission</div>
<div class="da-info-card__label">{{ demachats[0].dateSoumis|date('d-m-Y') }}</div>
</div>
<div class="da-info-card">
<div class="da-info-card__label">Date livraison souhaitée</div>
<div class="da-info-card__label">{{ demachats[0].delais }}</div>
</div>
<div class="da-info-card">
<div class="da-info-card__label">Région de </div>
<div class="da-info-card__label">{{ demachats[0].region != 'empty_value' ? demachats[0].region : '—' }}</div>
</div>
<div class="da-info-card">
<div class="da-info-card__label">Délai prévisionnel</div>
<div class="da-info-card__label" style="display:flex; align-items:center; gap:8px;">
{{ demachats[0].delaisPrevu ?? '—' }}
{% if is_granted('ROLE_RACHAT') %}
<a data-toggle="modal"
href="{{ path('ajax_modifier_delai_prevu',{'id_dem': demachats[0].id}) }}"
data-target="#modifprevu">
<img src="{{ asset('img/b_edit.png') }}" width="15">
</a>
{% endif %}
</div>
</div>
</div>
{# ── OBJET ── #}
{% if demachats[0].objet is not null %}
<div class="da-objet">
<span>Objet :</span> {{ demachats[0].objet }}
</div>
{% endif %}
{# ── TABLE DES ARTICLES ── #}
<div class="table-responsive">
<div class="da-table-wrap">
<div class="table-scroll">
<table>
<thead>
<tr>
<th>N°</th>
<th>Désignation</th>
<th>Détail</th>
<th>Qté</th>
<th>PU</th>
<th>Ctre Coût</th>
<th>Bailleur</th>
<th>Code Bail</th>
<th>Projet</th>
<th>DRL</th>
<th>Total</th>
<th >Obs</th>
{% if is_granted('ROLE_RACHAT') %}
<th>CC</th>
{% endif %}
<th ></th>
</tr>
</thead>
<tbody>
{% set n = 0 %}
{% for demachat in demachats %}
{% set n = n + 1 %}
{% set total = demachat.quantDemande * demachat.prixU %}
{% set total2 = total + total2 %}
<tr>
<td data-label="N°">
{{ n }}
{% if demachats[0].drapoRR!=1 and demachats[0].drapoDSCSC!=1 and demachats[0].drapoDP!=1 and demachats[0].drapoChefp!=1 and demachats[0].drapoLead!=1 %}
{% if demachat.user.username == user.username %}
{% if x != 1 %}
<a href="#" data-url="{{ path('supprimer_acha',{'id': demachat.id}) }}"
data-toggle="modal" data-target="#supp" class="open-modal btn btn-sm btn-outline-danger">
<i class="fas fa-trash-alt"></i>
</a>
{% endif %}
{% endif %}
{% endif %}
</td>
<td data-label="Désignation" class="col-designation">
{% set designation = 'designation'|t('Catalogue', demachat.catalogue.id) %}
{{ designation ? designation : demachat.catalogue.designation }}
{% if demachats[0].drapoRR!=1 and demachats[0].drapoDSCSC!=1 and demachats[0].drapoDP!=1 and demachats[0].drapoChefp!=1 and demachats[0].drapoLead!=1 %}
{% if demachat.user.username==user.username or is_granted('ROLE_RACHAT') or (valid1==1 and demachats[0].drapoInfo==0 and is_granted('ROLE_VALID_TECH_INFO')) or (valid2==1 and demachats[0].drapoGarage==0 and is_granted('ROLE_VALID_TECH_GARAG')) %}
<a href="#" class="open-modal" data-url="{{ path('ajax_modifier_demacha',{'id_dem': demachat.id}) }}" data-toggle="modal" data-target="#modifies">
<img src="{{ asset('img/b_edit.png') }}">
</a>
{% endif %}
{% endif %}
{% if is_granted('ROLE_ADMIN') %}
<a href="#" class="open-modal" data-url="{{ path('ajax_modifier_demacha',{'id_dem': demachat.id}) }}" data-toggle="modal" data-target="#modifies">
<img src="{{ asset('img/b_edit.png') }}">
</a>
{% endif %}
</td>
<td data-label="Détail" class="col-descrip">{{ demachat.description }}
</td>
<td data-label="Qté">{{ demachat.quantDemande }}
</td>
<td data-label="PU" class="num col-descrip">
{% if demachat.prixU %}{{ demachat.prixU|number_format(0, ',', ' ') }}{% endif %}
</td>
<td data-label="Centre">{{ demachat.centreCout }}</td>
<td data-label="Bailleur" class="col-bail">{{ demachat.nomProjet }}</td>
<td data-label="Code Bail">
{{ demachat.bailleur }}
{# Boutons édition code bailleur par chef projet #}
{% for i in 1..7 %}
{% set usechefI = attribute(_context, 'usechef' ~ i) %}
{% set usebailleI = attribute(_context, 'usebaille' ~ i) %}
{% set role = 'ROLE_CHEFP' ~ i %}
{% if usechefI is not null %}
{% for usebai in usebailleI %}
{% if demachat.nomProjet == usebai.bailleur.libele and is_granted(role) %}
<a href="#" class="open-modal"
data-url="{{ path('ajax_modif_acha',{'id_dem': demachat.id}) }}"
data-toggle="modal" data-target="#modbailleur">
<img src="{{ asset('img/b_edit.png') }}">
</a>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
</td>
<td data-label="Projet">{{ demachat.projet }}</td>
<td data-label="DRL">{{ demachat.ligneBudget }}</td>
<td data-label="Total" class="num col-descrip">{{ total|number_format(0, ',', ' ') }}</td>
<td data-label="Obs" >
{{ demachat.observation }}
{% if is_granted('ROLE_RACHAT') or is_granted('ROLE_VALID_TECH_GARAG') or is_granted('ROLE_VALID_TECH_INFO') or is_granted('ROLE_DP') or is_granted('ROLE_RR') or is_granted('ROLE_DSCSC2') or is_granted('ROLE_DSCSC') or is_granted('ROLE_CPROJET') or is_granted('ROLE_LEAD') %}
<a href="#" data-toggle="modal" class="open-modal"
data-url="{{ path('ajax_modif_demacha',{'id_dem': demachat.id}) }}"
data-target="#mod">
<img src="{{ asset('img/b_edit.png') }}">
</a>
{% endif %}
</td>
{% if is_granted('ROLE_RACHAT') %}
<td>
{% if demachat.contratCadre %}
<span class="badge badge-danger">
{{ demachat.contratCadre.reference }}
</span>
<a href="{{ path('contrat_cadre_show', {id: demachat.contratCadre.id}) }}"
<i class="fas fa-eye mr-1"></i>
</a>
{% if demachat.drapoValide==0 %}
<a href="#" data-toggle="modal" class="open-modal"
data-url="{{ path('ajax_modif_contra_cadre',{'id_dem': demachat.id}) }}"
data-target="#contrat">
<img src="{{ asset('img/b_edit.png') }}">
</a>
{% endif %}
{% endif %}
</td>
{% endif %}
<td>
{% if demachat.drapoCloture %}
<span class="badge badge-success">
Clôturé
</span>
{% elseif demachat.quantiteValidee > 0 %}
<span class="badge badge-warning">
Partiellement <br/>
commandé.reste: {{ demachat.resteACommander }}
<span data-toggle="tooltip"title="Quantité restante à commander : {{ demachat.resteACommander }}">
<i class="fas fa-shopping-cart"></i>
</span>
{% elseif demachat.resteACommander < demachat.quantDemande %}
<span class="badge badge-info">
Commande en cours<br/>
de validation
</span>
{% endif %}
</td>
</tr>
{% endfor %}
{# Ligne ajout article #}
<tr class="da-add-row">
<td>
{% if demachats[0].drapoRR!=1 and demachats[0].drapoDSCSC!=1 and demachats[0].drapoDP!=1 and demachats[0].drapoLead!=1 and demachats[0].drapoChefp1!=1 %}
{% if demachats[0].user.username == user.username %}
<a data-toggle="modal" data-backdrop="false" href="#inf" style="text-decoration:none">
<img src="{{ asset('img/but.jpg') }}" width="22" height="22" title="Ajouter un article">
</a>
{% endif %}
{% endif %}
</td>
<td colspan="12" style="font-size:.76rem; color:var(--muted); padding:8px 14px !important;">
{% if demachats[0].user.username == user.username %}Cliquer sur + pour ajouter un article{% endif %}
</td>
{% if is_granted('ROLE_CPROJET') %}<td></td>{% endif %}
</tr>
</tbody>
</table>
</div>
</div>
</div>
{# ── BLOC BAS : VALIDATIONS + TOTAUX ── #}
<div class="da-bottom">
{# ── VALIDATIONS ── #}
<div class="da-validations">
<div class="da-section-title">Vrification</div>
{# Validation technique INFO #}
{% if valid1 == 1 %}
<div class="da-valid-row">
<div class="da-valid-row__icon {% if demachats[0].drapoInfo==1 %}icon-ok{% elseif demachats[0].drapoInforefu==1 %}icon-rejected{% else %}icon-pending{% endif %}">
{% if demachats[0].drapoInfo==1 %}✔{% elseif demachats[0].drapoInforefu==1 %}✗{% else %}⏳{% endif %}
</div>
<div class="da-valid-row__body">
<div class="da-valid-row__name">Validation technique (Info)
{% if var!=2 %}
{% if valid1==1 and is_granted('ROLE_VALID_TECH_INFO') %}
{% if demachats[0].drapoInfo==0 %}
<img id="imginfo" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="validtech1" class="btn btn-success btn-xs">✔ Approuver</button>
{% endif %}
{% if demachats[0].drapoInforefu==0 %}
<img id="imgrefuinfo" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="validtech1refu" class="btn btn-danger btn-xs">✗ Rejeter</button>
{% endif %}
{% endif %}
{% endif %}
</div>
{% if demachats[0].drapoInfo==1 %}
<div class="da-valid-row__meta">{{ demachats[0].dateInfo|date('d-m-Y H\h:i') }}</div>
<div class="da-valid-row__sig">{{ usevalid1.username }}</div>
{% elseif demachats[0].drapoInforefu==1 %}
<div class="da-valid-row__meta" style="color:var(--danger)">Rejeté — {{ demachats[0].dateInfo|date('d-m-Y H\h:i') }}</div>
{% else %}
<div class="da-valid-row__meta">En attente</div>
{% endif %}
</div>
</div>
{% endif %}
{# Validation technique GARAGE #}
{% if valid2 == 1 %}
<div class="da-valid-row">
<div class="da-valid-row__icon {% if demachats[0].drapoGarage==1 %}icon-ok{% elseif demachats[0].drapoGaragerefu==1 %}icon-rejected{% else %}icon-pending{% endif %}">
{% if demachats[0].drapoGarage==1 %}✔{% elseif demachats[0].drapoGaragerefu==1 %}✗{% else %}⏳{% endif %}
</div>
<div class="da-valid-row__body">
<div class="da-valid-row__name">Validation technique (Garage)
{% if var!=2 %}
{% if valid2==1 and is_granted('ROLE_VALID_TECH_GARAG') %}
{% if demachats[0].drapoGarage==0 %}
<img id="imggarag" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="validtech2" class="btn btn-success btn-xs">✔ Approuver</button>
{% endif %}
{% if demachats[0].drapoGaragerefu==0 %}
<img id="imgrefugarag" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="validtech2refu" class="btn btn-danger btn-xs">✗ Rejeter</button>
{% endif %}
{% endif %}
{% endif %}
</div>
{% if demachats[0].drapoGarage==1 %}
<div class="da-valid-row__meta">{{ demachats[0].dateGarage|date('d-m-Y H\h:i') }}</div>
<div class="da-valid-row__sig">{{ usegarage.username }}</div>
{% elseif demachats[0].drapoGaragerefu==1 %}
<div class="da-valid-row__meta" style="color:var(--danger)">Rejeté — {{ demachats[0].dateGarage|date('d-m-Y') }}</div>
{% else %}
<div class="da-valid-row__meta">En attente</div>
{% endif %}
</div>
</div>
{% endif %}
{# Assistant Achat #}
<div class="da-valid-row">
<div class="da-valid-row__icon {% if demachats[0].drapoRespAcha==1 %}icon-ok{% elseif demachats[0].drapoRespAcharefu==1 %}icon-rejected{% else %}icon-pending{% endif %}">
{% if demachats[0].drapoRespAcha==1 %}✔{% elseif demachats[0].drapoRespAcharefu==1 %}✗{% else %}⏳{% endif %}
</div>
<div class="da-valid-row__body">
<div class="da-valid-row__name">Vérif. Assistant Achat
{# Conditions identiques à l'original selon valid1/valid2 #}
{% if var!=2 %}
{% if is_granted('ROLE_RACHAT') %}
{% if valid1==0 and valid2==0 %}
{% if demachats[0].drapoRespAcha==0 %}
<img id="imgrespacha" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="signrespacha" class="btn btn-success btn-xs">✔ Approuver</button>
{% endif %}
{% if demachats[0].drapoRespAcharefu==0 %}
<img id="imgrefuacha" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="refurespacha" class="btn btn-danger btn-xs">✗ Rejeter</button>
{% endif %}
{% elseif valid1==1 and valid2==0 %}
{% if demachats[0].drapoRespAcha==0 and demachats[0].drapoInfo==1 %}
<img id="imgrespacha" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="signrespacha" class="btn btn-success btn-xs">✔ Approuver</button>
{% endif %}
{% if demachats[0].drapoRespAcharefu==0 and demachats[0].drapoInfo==1 %}
<img id="imgrefuacha" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="refurespacha" class="btn btn-danger btn-xs">✗ Rejeter</button>
{% endif %}
{% elseif valid1==0 and valid2==1 %}
{% if demachats[0].drapoRespAcha==0 and demachats[0].drapoGarage==1 %}
<img id="imgrespacha" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="signrespacha" class="btn btn-success btn-xs">✔ Approuver</button>
{% endif %}
{% if demachats[0].drapoRespAcharefu==0 and demachats[0].drapoGarage==1 %}
<img id="imgrefuacha" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="refurespacha" class="btn btn-danger btn-xs">✗ Rejeter</button>
{% endif %}
{% elseif valid1==1 and valid2==1 %}
{% if demachats[0].drapoRespAcha==0 and demachats[0].drapoGarage==1 and demachats[0].drapoInfo==1 %}
<img id="imgrespacha" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="signrespacha" class="btn btn-success btn-xs">✔ Approuver</button>
{% endif %}
{% if demachats[0].drapoRespAcharefu==0 %}
<img id="imgrefuacha" class="loader-img" src="{{ asset('img/loders.gif') }}" width="30" height="22">
<button id="refurespacha" class="btn btn-danger btn-xs">✗ Rejeter</button>
{% endif %}
{% endif %}
{% endif %}
{% endif %}
</div>
{% if demachats[0].drapoRespAcha==1 %}
<div class="da-valid-row__meta">{{ demachats[0].dateRespAcha|date('d-m-Y H\h:i') }}</div>
<div class="da-valid-row__sig">{{ userespacha.username }}</div>
{% elseif demachats[0].drapoRespAcharefu==1 %}
<div class="da-valid-row__meta" style="color:var(--danger)">Rejeté — {{ demachats[0].dateRespAcha|date('d-m-Y H\h:i') }}</div>
{% else %}
<div class="da-valid-row__meta">En attente</div>
{% endif %}
</div>
</div>
</div>
{# ── TOTAUX ── #}
<div class="da-totals">
<div class="da-section-title">Récapitulatif financier</div>
{% set mtva = total2 * demachats[0].tva / 100 %}
{% set mttc = total2 + mtva %}
<table class="da-totals-table">
<tr>
<td class="t-label">Montant total HT</td>
<td class="t-value">{{ total2|number_format(0, ',', ' ') }} FCFA</td>
</tr>
<tr>
<td class="t-label">
TVA
<form id="monlistnum10" action="{{ path('mstopes_gestion_demande_achat') }}" method="post" class="tva-form" style="display:inline-flex; margin-left:8px;">
{{ demachats[0].tva }}%
{% if demachats[0].drapoRR!=1 and demachats[0].drapoDSCSC!=1 and demachats[0].drapoDP!=1 and demachats[0].drapoChefp!=1 and demachats[0].drapoLead!=1 %}
{% if demachats[0].user.username==user.username or is_granted('ROLE_RACHAT') %}
{{ form_widget(form10.tva) }}
<img id="tva" class="loader-img" src="{{ asset('img/loders.gif') }}" width="24" height="18">
{% endif %}
{% endif %}
</form>
</td>
<td class="t-value">{{ mtva|number_format(0, ',', ' ') }} FCFA</td>
</tr>
<tr class="t-ttc">
<td class="t-label"><strong>Montant total TTC</strong></td>
<td class="t-value"><strong>{{ mttc|number_format(0, ',', ' ') }} FCFA</strong></td>
</tr>
</table>
</div>
</div>{# end da-bottom #}
</div>{# end da-page #}
<div class="table-responsive auth-table">
<table class="table table-bordered custom-table">
<tr>
<td class="section-title" >Autorisation</td>
</tr>
</table>
</div>
{% if demachats[0].costcenter !=null %}
{% if nomb ==1 %}
<div class="val-circuit">
<div class="val-section">
<div class="val-row">
<div class="val-label">
Superieur hierachique
</div>
<div class="val-grid">
<div class="val-slot">
{# Signé #}
{% if demachats[0].drapoSup==1 %}
<div class="val-badge signed">
✓ <s><i>{{usesuph.username}}</i></s>
</div>
<div class="val-date">{{demachats[0].dateSuph|date('d-m-Y H\\h:i')}} </div>
{# Rejeté #}
{% elseif demachats[0].drapoSuprefu==1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateSuph|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if suph is not null %}
{% if user.username==suph.username and demachats[0].drapoRespAcha==1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoSup==0 %}
<img id="loasuph" src="{{ asset('img/loders.gif')}}"width="40" height="30"/>
<button id="signreg" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoSuprefu==0 %}
<img id="loasuphr" src="{{ asset('img/loders.gif')}}"width="40" height="30"/>
<button id="signregrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
{% endif %}
</div>
</div>
</div>
</div> {# fin section suph #}
{# --------------------------------------------------------
DIRECTEUR DU DÉPARTEMENT
RÉTROCOMPATIBILITÉ :
- usedp is not null → ancienne DA (avant migration multi-DP) → slot unique
- usedp is null → nouvelle DA → slots usedp1..8 via grille auto-fit
val-grid gère automatiquement 1 à 8 slots actifs
sans aucune modification du HTML
-------------------------------------------------------- #}
<div class="val-section">
<div class="val-row">
<div class="val-label">
DR. Département
</div>
<div class="val-grid">
{# SLOT DP 1 #}
{% if usedp1 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu1 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp1.username and var!=2 and demachats[0].drapoSup == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP1 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu1 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP1 #}
{# SLOT DP 2 #}
{% if usedp2 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu2 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp2.username and var!=2 and demachats[0].drapoSup == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP2 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu2 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP2 #}
{# SLOT DP 3 #}
{% if usedp3 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu3 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp3.username and var!=2 and demachats[0].drapoSup == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP3 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu3 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP3 #}
{# SLOT DP 4 #}
{% if usedp4 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu4 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp4.username and var!=2 and demachats[0].drapoSup == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP4 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu4 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP4 #}
{# SLOT DP 5 #}
{% if usedp5 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu5 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp5.username and var!=2 and demachats[0].drapoSup == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP5 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu5 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP5 #}
{# SLOT DP 6 #}
{% if usedp6 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu6 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp6.username and var!=2 and demachats[0].drapoSup == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP6 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu6 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP6 #}
{# SLOT DP 7 #}
{% if usedp7 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu7 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp7.username and var!=2 and demachats[0].drapoSup == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP7 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu7 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP7 #}
{# SLOT DP 8 #}
{% if usedp8 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu8 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp8.username and var!=2 and demachats[0].drapoSup == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP8 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu8 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP8 #}
</div>
</div>
</div>{# fin section DP #}
{% if demachats[0].montant < 2500000 %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
Finances
</div>
<div class="val-grid">
<div class="val-slot">
{% if demachats[0].drapoDSCSC == 1 %}
<div class="val-badge signed">✓ <s><i>{{usedscsc.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDSCSCrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if is_granted('ROLE_DSCSC2') and demachats[0].drapoDP == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoDSCSC ==0 %}
<img id="lods" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscsc" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDSCSCrefu == 0 %}
<img id="lod" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscscrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
{% if demachats[0].montant > 2499999 %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
DAF
</div>
<div class="val-grid">
<div class="val-slot">
{% if demachats[0].drapoDSCSC == 1 %}
<div class="val-badge signed">✓ <s><i>{{usedscsc.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDSCSCrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if is_granted('ROLE_DSCSC') and demachats[0].drapoDP == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoDSCSC ==0 %}
<img id="lods" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscsc" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDSCSCrefu == 0 %}
<img id="lod" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscscrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
{# --------------------------------------------------------
REPRÉSENTANT RÉSIDENT
Uniquement pour montant > 5 000 000 FCFA
Grisé et non cliquable si non requis
-------------------------------------------------------- #}
{% if demachats[0].montant > 4999999 %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
Repr. Résident
</div>
<div class="val-grid">
<div class="val-slot">
{% if demachats[0].drapoRR == 1 %}
<div class="val-badge signed">✓ <s><i>{{userr.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateRR|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoRRrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateRR|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if is_granted('ROLE_RR') and demachats[0].drapoDSCSC == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoRR == 0 %}
<img id="loadr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="rr" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoRRrefu == 0 %}
<img id="loadrr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="rrrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
</div>
{% elseif code == 13 %}
<div class="val-circuit">
{# --------------------------------------------------------
RESPONSABLE RÉGIONAL
Affiché uniquement si DA hors Bamako
Slot unique — pas de grille multi-slots
-------------------------------------------------------- #}
{% if demachats[0].region is not null and demachats[0].region != "Bamako" %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
Resp. Régional
</div>
<div class="val-grid">
<div class="val-slot">
{# Signé #}
{% if demachats[0].drapoRespReg == 1 %}
<div class="val-badge signed" >
✓ <s><i>{{userreg.username}}</i></s>
</div>
<div class="val-date" align="left">{{demachats[0].dateRespReg|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoRespRegrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date" align="left">{{demachats[0].dateRespReg|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles uniquement pour le RespReg connecté
Condition : RespAcha a déjà validé (drapoRespAcha==1) #}
{% if usereg is not null %}
{% if user.username == usereg.username and demachats[0].drapoRespAcha == 1 %}
<div class="val-btns">
{% if demachats[0].drapoRespReg ==0 %}
<img id="loareg" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signreg" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoRespRegrefu == 0 %}
<img id="loadreg" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signregrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}{# fin section resp.regional #}
{# CHANNEL LEAD #}
<div class="val-section">
<div class="val-row">
<div class="val-label">
Channel Lead
</div>
<div class="val-grid">
{% if uselead1 is not null %}
<div class="val-slot">
{% if demachats[0].drapoLead1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signelead1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateLead1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoLeadrefu1 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateLead1|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if user.username == uselead1.uselead.username and var!=2
and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoLead1 == 0 %}
<img id="imglead" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signlead" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoLeadrefu1 == 0 %}
<img id="imglea" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="leadrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}
{# Slots lead2..5 — même structure que slot 1 #}
{% if uselead2 is not null %}
<div class="val-slot">
{% if demachats[0].drapoLead2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signelead2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateLead2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoLeadrefu2 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateLead2|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if user.username == uselead2.uselead.username and var!=2
and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %} <div class="val-btns">
{% if demachats[0].drapoLead2 == 0 %}
<img src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signlead" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoLeadrefu2 == 0 %}
<img src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="leadrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}
{# ... leads 3 #}
{% if uselead3 is not null %}
<div class="val-slot">
{% if demachats[0].drapoLead3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signelead3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateLead3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoLeadrefu3 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateLead3|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if user.username == uselead3.uselead.username and var!=2
and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoLead3 == 0 %}
<img id="imglead" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signlead" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoLeadrefu3 == 0%}
<img id="imglea" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="leadrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}
{# ... leads 4 #}
{% if uselead4 is not null %}
<div class="val-slot">
{% if demachats[0].drapoLead4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signelead4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateLead4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoLeadrefu4 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateLead4|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if user.username == uselead4.uselead.username and var!=2
and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoLead4 == 0 %}
<img id="imglead" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signlead" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoLeadrefu4 == 0 %}
<img id="imglea" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="leadrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}
{# ... leads 5 #}
{% if uselead5 is not null %}
<div class="val-slot">
{% if demachats[0].drapoLead5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signelead5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateLead5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoLeadrefu5 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateLead5|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if user.username == uselead5.uselead.username and var!=2
and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoLead5 == 0 %}
<img id="imglead" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signlead" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoLeadrefu5 == 0 %}
<img id="imglea" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="leadrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
{# --------------------------------------------------------
DIRECTEUR MÉDICAL
Affiché uniquement si categmedical == 1
S'intercale entre Lead et Chefs de projet
-------------------------------------------------------- #}
{% if categmedical == 1 %}
<div class="val-section">
<div class="val-row">
<div class="val-label"> DR. Médical </div>
<div class="val-grid">
<div class="val-slot">
{% if demachats[0].drapoDRMEDICAL == 1 %}
<div class="val-badge signed">✓ <s><i>{{usedrmedical.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateDRMEDICAL|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDRMEDICALrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date"align="left">{{demachats[0].dateDRMEDICAL|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if is_granted('ROLE_DR_MEDICAL') and demachats[0].drapoLead == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoDRMEDICAL == 0 %}
<img id="loamedical" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signdrmedical" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDRMEDICALrefu == 0 %}
<img id="loamedicalr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signdrmedicalrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}{# fin section dr medical #}
{# --------------------------------------------------------
CHEFS DE PROJET
RÈGLE MÉTIER — slots séparés intentionnellement (voir commentaires généraux)
Branche médicale : prérequis drapoDRMEDICAL==1
Branche standard : prérequis drapoLead==1
Pour chaque slot :
- drapoChefpX==1 → ce slot est le valideur effectif → afficher signechefpX
- drapoChefp==1 and drapoChefpY==1 → un autre slot a validé → afficher signechefpY
- drapoChefp==0 → en attente ou bloqué
UN SEUL drapoChefpX sera à 1 sur une même DA (unicité par projet/bailleur)
-------------------------------------------------------- #}
<div class="val-section">
<div class="val-row">
<div class="val-label"> Chef de projet </div>
<div class="val-grid">
{# SLOT CHEF 1 #}
{% if usechef1 is not null %}
<div class="val-slot">
{# Sous-titre : nom du projet/bailleur associé à ce slot #}
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu1 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date" align="left">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef1.user.username and var!=2
and (
(categmedical == 1 and demachats[0].drapoDRMEDICAL == 1)
or
(categmedical != 1 and demachats[0].drapoLead == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoChefp1 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu1 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp1 #}
{# SLOT CHEF 2 — même structure que slot 1, slot indépendant
car projet/bailleur distinct et règle de réattribution identique #}
{% if usechef2 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu2 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date" align="left">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef2.user.username and var!=2
and (
(categmedical == 1 and demachats[0].drapoDRMEDICAL == 1)
or
(categmedical != 1 and demachats[0].drapoLead == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoChefp2 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu2 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp2 #}
{# SLOTS CHEF 3 #}
{% if usechef3 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu3 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date" align="left">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef3.user.username and var!=2
and (
(categmedical == 1 and demachats[0].drapoDRMEDICAL == 1)
or
(categmedical != 1 and demachats[0].drapoLead == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoChefp3 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu3 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp3 #}
{# SLOTS CHEF 4 #}
{% if usechef4 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu4 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date" align="left">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef4.user.username and var!=2
and (
(categmedical == 1 and demachats[0].drapoDRMEDICAL == 1)
or
(categmedical != 1 and demachats[0].drapoLead == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoChefp4 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu4 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp4 #}
{# SLOTS CHEF 5 #}
{% if usechef5 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu5 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date" align="left">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef5.user.username and var!=2
and (
(categmedical == 1 and demachats[0].drapoDRMEDICAL == 1)
or
(categmedical != 1 and demachats[0].drapoLead == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoChefp5 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu5 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp5 #}
{# SLOTS CHEF 6 #}
{% if usechef6 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu6 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date" align="left">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef6.user.username and var!=2
and (
(categmedical == 1 and demachats[0].drapoDRMEDICAL == 1)
or
(categmedical != 1 and demachats[0].drapoLead == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoChefp6 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu6 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp6 #}
{# SLOTS CHEF 7 #}
{% if usechef7 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date" align="left">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu7 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date" align="left">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef7.user.username and var!=2
and (
(categmedical == 1 and demachats[0].drapoDRMEDICAL == 1)
or
(categmedical != 1 and demachats[0].drapoLead == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoChefp7 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu7 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp7 #}
</div>
</div>
</div>
{# --------------------------------------------------------
DIRECTEUR DU DÉPARTEMENT
RÉTROCOMPATIBILITÉ :
- usedp is not null → ancienne DA (avant migration multi-DP) → slot unique
- usedp is null → nouvelle DA → slots usedp1..8 via grille auto-fit
val-grid gère automatiquement 1 à 8 slots actifs
sans aucune modification du HTML
-------------------------------------------------------- #}
<div class="val-section">
<div class="val-row">
<div class="val-label">
DR. Département
</div>
<div class="val-grid">
{# SLOT DP 1 #}
{% if usedp1 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu1 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp1.username and var!=2 and demachats[0].drapoChefp == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP1 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu1 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP1 #}
{# SLOT DP 2 #}
{% if usedp2 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu2 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp2.username and var!=2 and demachats[0].drapoChefp == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP2 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu2 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP2 #}
{# SLOT DP 3 #}
{% if usedp3 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu3 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp3.username and var!=2 and demachats[0].drapoChefp == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP3 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu3 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP3 #}
{# SLOT DP 4 #}
{% if usedp4 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu4 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp4.username and var!=2 and demachats[0].drapoChefp == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP4 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu4 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP4 #}
{# SLOT DP 5 #}
{% if usedp5 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu5 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp5.username and var!=2 and demachats[0].drapoChefp == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP5 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu5 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP5 #}
{# SLOT DP 6 #}
{% if usedp6 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu6 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp6.username and var!=2 and demachats[0].drapoChefp == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP6 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu6 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP6 #}
{# SLOT DP 7 #}
{% if usedp7 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu7 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp7.username and var!=2 and demachats[0].drapoChefp == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP7 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu7 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP7 #}
{# SLOT DP 8 #}
{% if usedp8 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu8 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp8.username and var!=2 and demachats[0].drapoChefp == 1 %}
<div class="val-btns">
{% if demachats[0].drapoDP8 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu8 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP8 #}
</div>
</div>
</div>{# fin section DP #}
{# --------------------------------------------------------
FINANCES / DAF
Même structure — slot unique
Label et rôle changent selon le montant :
< 2 500 000 FCFA → "Finances" (ROLE_DSCSC2)
≥ 2 500 000 FCFA → "DAF" (ROLE_DSCSC)
drapoDSCSC porte le flag dans les deux cas
-------------------------------------------------------- #}
{% if demachats[0].montant < 2500000 %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
Finances
</div>
<div class="val-grid">
<div class="val-slot">
{% if demachats[0].drapoDSCSC == 1 %}
<div class="val-badge signed">✓ <s><i>{{usedscsc.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDSCSCrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if is_granted('ROLE_DSCSC2') and demachats[0].drapoDP == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoDSCSC ==0 %}
<img id="lods" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscsc" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDSCSCrefu == 0 %}
<img id="lod" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscscrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
{% if demachats[0].montant > 2499999 %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
DAF
</div>
<div class="val-grid">
<div class="val-slot">
{% if demachats[0].drapoDSCSC == 1 %}
<div class="val-badge signed">✓ <s><i>{{usedscsc.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDSCSCrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if is_granted('ROLE_DSCSC') and demachats[0].drapoDP == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoDSCSC ==0 %}
<img id="lods" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscsc" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDSCSCrefu == 0 %}
<img id="lod" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscscrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
{# --------------------------------------------------------
REPRÉSENTANT RÉSIDENT
Uniquement pour montant > 5 000 000 FCFA
Grisé et non cliquable si non requis
-------------------------------------------------------- #}
{% if demachats[0].montant > 4999999 %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
Repr. Résident
</div>
<div class="val-grid">
<div class="val-slot">
{%if demachats[0].drapoRR == 1 %}
<div class="val-badge signed">✓ <s><i>{{userr.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateRR|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoRRrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateRR|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if is_granted('ROLE_RR') and demachats[0].drapoDSCSC == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoRR == 0 %}
<img id="loadr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="rr" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoRRrefu == 0 %}
<img id="loadrr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="rrrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
</div>
{# fin code==13 #}
{% elseif code == 61 %}
<div class="val-circuit">
{# --------------------------------------------------------
RESPONSABLE RÉGIONAL
Affiché uniquement si DA hors Bamako
Slot unique — pas de grille multi-slots
-------------------------------------------------------- #}
{% if demachats[0].region is not null and demachats[0].region != "Bamako" %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
Resp. Régional
</div>
<div class="val-grid">
<div class="val-slot">
{# Signé #}
{% if demachats[0].drapoRespReg == 1 %}
<div class="val-badge signed">
✓ <s><i>{{userreg.username}}</i></s>
</div>
<div class="val-date">{{demachats[0].dateRespReg|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoRespRegrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateRespReg|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles uniquement pour le RespReg connecté
Condition : RespAcha a déjà validé (drapoRespAcha==1) #}
{% if usereg is not null %}
{% if user.username == usereg.username and demachats[0].drapoRespAcha == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoRespReg ==0 %}
<img id="loareg" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signreg" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoRespRegrefu == 0 %}
<img id="loadreg" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signregrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}{# fin section resp.regional #}
{# --------------------------------------------------------
DIRECTEUR DU DÉPARTEMENT
RÉTROCOMPATIBILITÉ :
- usedp is not null → ancienne DA (avant migration multi-DP) → slot unique
- usedp is null → nouvelle DA → slots usedp1..8 via grille auto-fit
val-grid gère automatiquement 1 à 8 slots actifs
sans aucune modification du HTML
-------------------------------------------------------- #}
<div class="val-section">
<div class="val-row">
<div class="val-label">
DR. Département
</div>
<div class="val-grid">
{# SLOT DP 1 #}
{% if usedp1 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu1 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp1.username and var!=2
and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoDP1 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu1 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP1 #}
{# SLOT DP 2 #}
{% if usedp2 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu2 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp2.username and var!=2
and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoDP2 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu2 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP2 #}
{# SLOT DP 3 #}
{% if usedp3 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu3 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp3.username and var!=2 and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoDP3 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu3 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP3 #}
{# SLOT DP 4 #}
{% if usedp4 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu4 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp4.username and var!=2 and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoDP4 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu4 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP4 #}
{# SLOT DP 5 #}
{% if usedp5 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu5 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp5.username and var!=2 and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoDP5 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu5 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP5 #}
{# SLOT DP 6 #}
{% if usedp6 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu6 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp6.username and var!=2 and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoDP6 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu6 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP6 #}
{# SLOT DP 7 #}
{% if usedp7 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu7 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp7.username and var!=2 and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoDP7 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu7 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP7 #}
{# SLOT DP 8 #}
{% if usedp8 is not null %}
<div class="val-slot">
{# Ce slot est le valideur effectif #}
{% if demachats[0].drapoDP8 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP8.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{# drapoDP global==1 mais via un autre slot
→ afficher le valideur effectif #}
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDP == 1 and demachats[0].drapoDP7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signeDP7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDP7|date('d-m-Y H\\h:i')}}</div>
{# Rejeté #}
{% elseif demachats[0].drapoDPrefu8 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDP8|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# Boutons — visibles pour le DP propriétaire du slot
Conditions : chefs validés + lead validé + DSCSC pas encore passé #}
{% if user.username == usedp8.username and var!=1 and (
(demachats[0].region != "Bamako" and demachats[0].drapoRespReg == 1)
or
(demachats[0].region == "Bamako" and demachats[0].drapoRespAcha == 1)
) %}
<div class="val-btns">
{% if demachats[0].drapoDP8 == 0 %}
<img id="loadp" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dp" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDPrefu8 == 0 %}
<img id="loadpr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dprefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
{% endif %} {# fin DP8 #}
</div>
</div>
</div>{# fin section DP #}
{# --------------------------------------------------------
CHEFS DE PROJET
RÈGLE MÉTIER — slots séparés intentionnellement (voir commentaires généraux)
Branche standard : prérequis drapoDP==1
Pour chaque slot :
- drapoChefpX==1 → ce slot est le valideur effectif → afficher signechefpX
- drapoChefp==1 and drapoChefpY==1 → un autre slot a validé → afficher signechefpY
- drapoChefp==0 → en attente ou bloqué
UN SEUL drapoChefpX sera à 1 sur une même DA (unicité par projet/bailleur)
-------------------------------------------------------- #}
<div class="val-section">
<div class="val-row">
<div class="val-label"> Chef de projet </div>
<div class="val-grid">
{# SLOT CHEF 1 #}
{% if usechef1 is not null %}
<div class="val-slot">
{# Sous-titre : nom du projet/bailleur associé à ce slot #}
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu1 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef1.user.username and var!=2 and demachats[0].drapoDP == 1 %}
<div class="val-btns">
{% if demachats[0].drapoChefp1 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu1 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp1 #}
{# SLOT CHEF 2 — même structure que slot 1, slot indépendant
car projet/bailleur distinct et règle de réattribution identique #}
{% if usechef2 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu2 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef2.user.username and var!=2 and demachats[0].drapoDP == 1 %}
<div class="val-btns">
{% if demachats[0].drapoChefp2 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu2 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp2 #}
{# SLOTS CHEF 3 #}
{% if usechef3 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu3 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef3.user.username and var!=2 and demachats[0].drapoDP == 1 %}
<div class="val-btns">
{% if demachats[0].drapoChefp3 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu3 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp3 #}
{# SLOTS CHEF 4 #}
{% if usechef4 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu4 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef4.user.username and var!=2 and demachats[0].drapoDP == 1 %}
<div class="val-btns">
{% if demachats[0].drapoChefp4 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu4 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp4 #}
{# SLOTS CHEF 5 #}
{% if usechef5 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu5 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef5.user.username and var!=2 and demachats[0].drapoDP == 1 %}
<div class="val-btns">
{% if demachats[0].drapoChefp5 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu5 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp5 #}
{# SLOTS CHEF 6 #}
{% if usechef6 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu6 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef6.user.username and var!=2 and demachats[0].drapoDP == 1%}
<div class="val-btns">
{% if demachats[0].drapoChefp6 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu6 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp6 #}
{# SLOTS CHEF 7 #}
{% if usechef7 is not null %}
<div class="val-slot">
{# Cas 1 : ce slot est le valideur effectif #}
{% if demachats[0].drapoChefp7 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp7.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{# Cas 2 : drapoChefp global==1 mais via un autre slot
→ chercher le valideur effectif parmi les autres slots
→ UN SEUL drapoChefpX sera à 1 #}
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp1 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp1.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp1|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp2 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp2.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp2|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp3 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp3.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp3|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp4 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp4.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp4|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp5 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp5.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp5|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoChefp == 1 and demachats[0].drapoChefp6 == 1 %}
<div class="val-badge signed">✓ <s><i>{{signechefp6.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateChefp6|date('d-m-Y H\\h:i')}}</div>
{# Cas 3 : rejeté par ce slot #}
{% elseif demachats[0].drapoChefprefu7 == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateChefp7|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{# boutons visibles pour le propriétaire actuel du slot
Branche médicale : drapoDRMEDICAL==1 requis
Branche standard : drapoLead==1 requis
drapoChefp==0 : personne n'a encore finalisé globalement #}
{% if user.username == usechef7.user.username and var!=2 and demachats[0].drapoDP == 1 %}
<div class="val-btns">
{% if demachats[0].drapoChefp7 == 0 %}
<img id="imgchef" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="signchef" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoChefprefu7 == 0 %}
<img id="imgche" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<a data-toggle="modal" data-backdrop="false"
href="{{path('raison_refu', {'id': demachats[0].id})}}"
data-target="#chefpr">
<button class="btn-reject">✗ rejeté</button>
</a>
{% endif %}
</div>
{% endif %}
</div>
{% endif %}{# fin chefp7 #}
</div>
</div>
</div>
{% if demachats[0].montant < 2500000 %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
Finances
</div>
<div class="val-grid">
<div class="val-slot">
{% if demachats[0].drapoDSCSC == 1 %}
<div class="val-badge signed">✓ <s><i>{{usedscsc.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDSCSCrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if is_granted('ROLE_DSCSC2') and demachats[0].drapoDP == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoDSCSC ==0 %}
<img id="lods" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscsc" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDSCSCrefu == 0 %}
<img id="lod" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscscrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
{% if demachats[0].montant > 2499999 %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
DAF
</div>
<div class="val-grid">
<div class="val-slot">
{% if demachats[0].drapoDSCSC == 1 %}
<div class="val-badge signed">✓ <s><i>{{usedscsc.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoDSCSCrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateDSCSC|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if is_granted('ROLE_DSCSC') and demachats[0].drapoDP == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoDSCSC ==0 %}
<img id="lods" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscsc" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoDSCSCrefu == 0 %}
<img id="lod" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="dscscrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
{# --------------------------------------------------------
REPRÉSENTANT RÉSIDENT
Uniquement pour montant > 5 000 000 FCFA
Grisé et non cliquable si non requis
-------------------------------------------------------- #}
{% if demachats[0].montant > 4999999 %}
<div class="val-section">
<div class="val-row">
<div class="val-label">
Repr. Résident
</div>
<div class="val-grid">
<div class="val-slot">
{%if demachats[0].drapoRR == 1 %}
<div class="val-badge signed">✓ <s><i>{{userr.username}}</i></s></div>
<div class="val-date">{{demachats[0].dateRR|date('d-m-Y H\\h:i')}}</div>
{% elseif demachats[0].drapoRRrefu == 1 %}
<div class="val-badge refused">✗ rejeté</div>
<div class="val-date">{{demachats[0].dateRR|date('d-m-Y H\\h:i')}}</div>
{% endif %}
{% if is_granted('ROLE_RR') and demachats[0].drapoDSCSC == 1 and var!=2 %}
<div class="val-btns">
{% if demachats[0].drapoRR == 0 %}
<img id="loadr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="rr" class="btn-approve">✓ approuvé</button>
{% endif %}
{% if demachats[0].drapoRRrefu == 0 %}
<img id="loadrr" src="{{ asset('img/loders.gif') }}" width="40" height="30"/>
<button id="rrrefu" class="btn-reject">✗ rejeté</button>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
</div>
{% endif %}
</div>
{# fin code==61 #}
{% endif %}
{% endif %}
<p> </p>
{% if demachatrefus[0] is defined %}
<div class="table-responsive" style="width:90%; margin:auto;">
<table class="table table-bordered table-hover">
<caption class="text-center">
<h4>Articles du D.A rejeté par le chef de projet</h4>
</caption>
<thead class="thead-light">
<tr>
<th class="text-center">Designation Article</th>
<th class="text-center">Qte Demandée</th>
<th class="text-center">Prix Unitaire</th>
<th class="text-center">Centre de cout</th>
<th class="text-center">Bailleur</th>
<th class="text-center">Raison du rejet</th>
<th class="text-center">Chef de Projet</th>
</tr>
</thead>
<tbody>
{% for demachatrefu in demachatrefus %}
<tr>
<td>{{ demachatrefu.designation }}</td>
<td>{{ demachatrefu.quantDemande }}</td>
<td>{{ demachatrefu.prixU }}</td>
<td>{{ demachatrefu.centreCout }}</td>
<td>{{ demachatrefu.nomProjet }}</td>
<td>{{ demachatrefu.raisonRefu }}</td>
<td>{{ demachatrefu.signeChef.nom }} {{ demachatrefu.signeChef.prenom }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
<p> </p>
</div>
</div>
<div class="modal fade monModal" id="mod" tabindex="-1" role="dialog" aria-labelledby="infLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable" role="document">
<div class="modal-content">
<!-- HEADER -->
<div class="modal-header">
<h5 class="modal-title" id="infLabel">Observation </h5>
<button type="button" class="close" data-dismiss="modal">
<span>×</span>
</button>
</div>
<!-- BODY -->
<div class="modal-body">
</div>
</div>
</div>
</div>
<div class="modal fade monModal" id="contrat" tabindex="-1" role="dialog" aria-labelledby="infLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable" role="document">
<div class="modal-content">
<!-- HEADER -->
<div class="modal-header">
<h5 class="modal-title" id="infLabel">Contrat cadre</h5>
<button type="button" class="close" data-dismiss="modal">
<span>×</span>
</button>
</div>
<!-- BODY -->
<div class="modal-body">
</div>
</div>
</div>
</div>
<div class="modal fade monModal" id="modbailleur" tabindex="-1" role="dialog" aria-labelledby="infLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable" role="document">
<div class="modal-content">
<!-- HEADER -->
<div class="modal-header">
<h5 class="modal-title" id="infLabel">code Bailleur/Projet/DRL </h5>
<button type="button" class="close" data-dismiss="modal">
<span>×</span>
</button>
</div>
<!-- BODY -->
<div class="modal-body">
</div>
</div>
</div>
</div>
<div class="container">
<div class="modal fade" id="refubail">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="modal fade" id="modifprevu">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="modal fade" id="modifinfo">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
</div>
</div>
</div>
</div>
</div>
<div class="modal fade monModal" id="modifies" tabindex="-1" role="dialog" aria-labelledby="infLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable" role="document">
<div class="modal-content">
<!-- HEADER -->
<div class="modal-header">
<h5 class="modal-title" id="infLabel">Modifier DA</h5>
<button type="button" class="close" data-dismiss="modal">
<span>×</span>
</button>
</div>
<!-- BODY -->
<div class="modal-body">
</div>
</div>
</div>
</div>
<div class="modal fade monModal" id="supp" tabindex="-1" role="dialog" aria-labelledby="infLabel" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable" role="document">
<div class="modal-content">
<!-- HEADER -->
<div class="modal-header">
<h5 class="modal-title" id="infLabel">Confirmez la suppression</h5>
<button type="button" class="close" data-dismiss="modal">
<span>×</span>
</button>
</div>
<!-- BODY -->
<div class="modal-body">
</div>
</div>
</div>
</div>
<div class="container">
<div class="modal fade" id="raisrefu">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="modal fade" id="chefrefu">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="modal fade" id="chefpr">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
</div>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="modalUpload" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Ajouter une pièce jointe</h5>
<button type="button" class="close" data-dismiss="modal">
<span>×</span>
</button>
</div>
<div class="modal-body">
<!-- Fichier existant -->
<div id="fichierExistant" class="d-none alert alert-info mb-3">
<strong>Fichier actuel :</strong>
<span id="iconeFichierExistant"></span>
<a id="lienFichierExistant" href="#" target="_blank"></a>
<small class="d-block text-muted mt-1">
<i class="fas fa-info-circle"></i> Uploader un nouveau fichier remplacera celui-ci.
</small>
</div>
<!-- Input file -->
<div class="form-group">
<label>Fichier (PDF, Word, Excel) — max 5 Mo</label>
<input type="file" id="pieceJointeFile" class="form-control-file"
accept=".pdf,.doc,.docx,.xls,.xlsx">
</div>
<!-- Progression -->
<div id="uploadProgress" class="d-none">
<div class="progress">
<div class="progress-bar progress-bar-striped progress-bar-animated w-100"></div>
</div>
<small class="text-muted mt-1 d-block">Envoi en cours...</small>
</div>
<!-- Alerte résultat -->
<div id="uploadAlert" class="d-none mt-2"></div>
<!-- Lien téléchargement -->
<div id="downloadSection" class="d-none mt-3">
<a id="downloadLink" href="#" target="_blank" class="btn btn-success btn-sm">
<i class="fas fa-download"></i> Télécharger la pièce jointe
</a>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button>
<button type="button" class="btn btn-primary" id="btnUpload">
<i class="fas fa-upload"></i> Envoyer
</button>
</div>
</div>
</div>
</div>
{% endif %}
{% if demachats[0].etat==0 %} <h2 >{{ " La Demande d'Achat est Annulée!"}} </h2>{% endif %}
<p> </p>
</body>
</html>