{% extends '@admin/base.html.twig' %} {% set documentStatusMap = { 'en-attente': {'label':'En attente','class':'alert-en-attente'}, 'accepte': {'label':'Accepte','class':'alert-accepte'}, 'a-expedier': {'label':'A expedier','class':'alert-a-expedier'}, 'expedie': {'label':'Expedie','class':'alert-expedie'}, 'echange-recu': {'label':'Echange recu','class':'alert-echange-recu'}, 'livre': {'label':'Livre','class':'alert-livre'}, 'paye': {'label':'Paye','class':'alert-paye'}, 'non-paye': {'label':'Non paye','class':'alert-non-paye'}, 'partiellement-paye': {'label':'Partiellement paye','class':'alert-partiellement-paye'}, 'annule': {'label':'Annule','class':'alert-annule'}, 'retour-en-cours': {'label':'Retour en cours','class':'alert-retour-en-cours'}, 'retourne': {'label':'Retourne','class':'alert-retourne'}, 'brouillon': {'label':'Brouillon','class':'alert-en-attente'} } %} {% set paymentLineStatusMap = { 'validated': {'label':'Paye','class':'bg-success'}, 'updated': {'label':'A valider','class':'bg-primary'}, 'not_found': {'label':'Introuvable','class':'bg-secondary text-dark'}, 'amount_mismatch': {'label':'Montant different','class':'bg-warning text-dark'}, 'invalid_status': {'label':'Statut invalide','class':'bg-danger'}, 'delivery_mismatch': {'label':'Societe differente','class':'bg-dark'}, 'already_paid': {'label':'Deja paye','class':'bg-info text-dark'} } %} {% set statCards = [ {'label':'Lignes', 'value': lineStats.lines, 'icon':'fa-list-ol', 'variant':''}, {'label':'A valider', 'value': lineStats.updated, 'icon':'fa-check-circle', 'variant':'is-success'}, {'label':'Paiements valides', 'value': lineStats.validated, 'icon':'fa-check-double', 'variant':'is-success'}, {'label':'Numeros introuvables', 'value': lineStats.not_found, 'icon':'fa-search', 'variant':'is-muted'}, {'label':'Montants differents', 'value': lineStats.amount_mismatch, 'icon':'fa-exclamation-triangle', 'variant':'is-warning'}, {'label':'Statuts invalides', 'value': lineStats.invalid_status, 'icon':'fa-ban', 'variant':'is-danger'}, {'label':'Societes differentes', 'value': lineStats.delivery_mismatch, 'icon':'fa-truck', 'variant':'is-danger'}, {'label':'Deja payes', 'value': lineStats.already_paid, 'icon':'fa-money-check-dollar', 'variant':'is-info'} ] %} {% block subheader %}

Recapitulatif paiement livraison

{{ payment.delivery ? payment.delivery.name : '-' }} - {{ payment.documentDate ? payment.documentDate|date('d/m/Y') : '-' }}
{% if payment.status == 'validated' %} Paiement valide {% if payment.validatedAt %} Valide le {{ payment.validatedAt|date('d/m/Y H:i') }} {% endif %} {% else %} En attente de validation {% endif %}
Retour a la liste
{% endblock %} {% block breadcrumb %}{% endblock %} {% block bodycontent %}
{% for card in statCards %}
{{ card.label }}
{{ card.value }}
{% endfor %}
Societe : {{ payment.delivery ? payment.delivery.name : '-' }}
Date document : {{ payment.documentDate ? payment.documentDate|date('d/m/Y') : '-' }}
Montant total : {{ payment.totalAmount|number_format(3, '.', ' ') }} TND
Fichier : {{ payment.sourceFilename ?: '-' }}
Filtrer par statut
{% for statusValue, statusMeta in paymentLineStatusMap %}
{% endfor %}
{% for line in payment.lines %} {% set doc = line.matchedDocument %} {% set docStatus = doc ? documentStatusMap[doc.status]|default({'label': doc.status|default('-'), 'class': 'bg-secondary text-white'}) : null %} {% else %} {% endfor %}
No suivi Montant import Date paiement Document Montant document Ecart Statut Note
{{ line.parcelTrackingNbr ?: '-' }} {{ line.declaredAmount is not null ? line.declaredAmount|number_format(3, '.', ' ') ~ ' TND' : '-' }} {{ line.paidAt ? line.paidAt|date('d/m/Y') : '-' }} {% if doc %} {{ doc.internalNbr }}
{{ docStatus.label }}
{% else %} - {% endif %}
{{ doc and doc.totalToPay is not null ? doc.totalToPay|number_format(3, '.', ' ') ~ ' TND' : '-' }} {{ line.amountDifference is not null ? line.amountDifference|number_format(3, '.', ' ') : '-' }} {% if line.status == 'validated' %} validatedPaye {% elseif line.status == 'updated' %} updatedA valider {% elseif line.status == 'not_found' %} not_foundIntrouvable {% elseif line.status == 'amount_mismatch' %} amount_mismatchMontant different {% elseif line.status == 'invalid_status' %} invalid_statusStatut invalide {% elseif line.status == 'delivery_mismatch' %} delivery_mismatchSociete differente {% elseif line.status == 'already_paid' %} already_paidDeja paye {% else %} unknown- {% endif %} {{ line.note ?: '-' }}
Aucune ligne importee.
{% endblock %} {% block js %} {{ parent() }} {% endblock %}