templates/client_order/ticket/ticket.pdf.twig line 1

Open in your IDE?
  1. <!DOCTYPE html><html lang="fr">
  2. {# @var clientOrder \App\Entity\ClientOrder #}
  3. <head>
  4.     <title>Votre projet de cadre du mesure</title>
  5.     <style>
  6.         {{ source('@styles/order_client.css') }}
  7.         /* Constrain logo size to prevent rendering issues */
  8.         img.logo {
  9.             max-width: 150px;
  10.             height: auto;
  11.         }
  12.         /* Add constraints to the logo container div */
  13.         header .div1 {
  14.             max-width: 150px;
  15.             max-height: 60px;
  16.             overflow: hidden;
  17.         }
  18.     </style>
  19. </head>
  20. <body>
  21. <header>
  22.     <div class="div1">
  23.         {% if clientOrder.project.projectSettings.logoPath %}
  24.             <img src="{{ app.request.schemeAndHttpHost ~ clientOrder.project.projectSettings.logoPath }}" class="logo">
  25.         {% endif %}
  26.     </div>
  27.     <div class="div2">
  28.         <div class="title">Votre projet de cadre sur mesure</div>
  29.         {% if clientOrder.reference %}
  30.             <div class="title" style="margin-top: 4mm; font-weight: normal">Référence unique : {{ clientOrder.reference }}</div>
  31.         {% endif %}
  32.     </div>
  33. </header>
  34. <body>
  35.     {% if get_project_setting(clientOrder.project, 'extraTicketInfo') and get_project_setting(clientOrder.project, 'extraTicketInfo') != "false" %}
  36.     <div style="margin-bottom: 3mm; font-weight: bold;">
  37.         {{ get_project_setting(clientOrder.project, 'extraTicketInfo') }}
  38.     </div>
  39.     {% endif %}
  40.     <div class="info_client">
  41.         {% set hasInternaut = false %}
  42.         {% if clientOrder.internaute is not null and (clientOrder.internaute.firstname is not empty and clientOrder.internaute.lastname is not empty) %}
  43.             {% set hasInternaut = true %}
  44.             <div class="div1">
  45.                 <div class="label">Informations du client:</div>
  46.                 <div class="data">
  47.                     <div>{{ clientOrder.internaute.firstname ?? '' }} {{ clientOrder.internaute.lastname ?? '' }}</div>
  48.                     <div>
  49.                         {{ clientOrder.internaute.address ?? '' }}
  50.                         {% if clientOrder.internaute.address2 ?? '' %}
  51.                             {{ clientOrder.internaute.address2 }}<br>
  52.                         {% endif %}
  53.                         {% if (clientOrder.internaute.town ?? '') or (clientOrder.internaute.postalCode ?? '') %}
  54.                             {{ clientOrder.internaute.town }} {{ clientOrder.internaute.postalCode }},<br>
  55.                         {% endif %}
  56.                         {% if clientOrder.internaute.country ?? '' %}
  57.                             {{ clientOrder.internaute.country }}
  58.                         {% endif %}
  59.                     </div>
  60.                     {% if clientOrder.internaute.email %}
  61.                         <div>{{ clientOrder.internaute.email }}</div>
  62.                     {% endif %}
  63.                     {% if clientOrder.internaute.phone %}
  64.                         <div>{{ clientOrder.internaute.phone }}</div>
  65.                     {% endif %}
  66.                     {% if clientOrder.internaute.loyaltyCard %}
  67.                         <div>Numéro de carte de fidélité : {{ clientOrder.internaute.loyaltyCard ?? '' }}</div>
  68.                     {% endif %}
  69.                 </div>
  70.             </div>
  71.         {% endif %}
  72.         <div class="div2" style="float: right; text-align: right;">
  73.             <div style="width: 100%; text-align: right;">
  74.                 <div class="data">{{ clientOrder.created|date('d/m/Y à H\\hi') }}</div>
  75.                 <div class="data">{{ clientOrder.project.name }}</div>
  76.                 {% if clientOrder.sellerName is not null and clientOrder.comment is not empty %}
  77.                     <div class="data">{{ clientOrder.sellerName ?? '' }}</div>
  78.                 {% endif %}
  79.                 {% if clientOrder.comment is not null and clientOrder.comment is not empty %}
  80.                     <div class="data">{{ clientOrder.comment|nl2br }}</div>
  81.                 {% endif %}
  82.             </div>
  83.         </div>
  84.     </div>
  85.     {# Import shared macros #}
  86.     {% from 'client_order/macros/order_products.html.twig' import render_order_products %}
  87.     
  88.     {# Display products using shared macro system #}
  89.     {{ render_order_products(clientOrder, 'pdf') }}
  90.     <div style="font-style: italic; margin-top: 2mm;">
  91.         Le prix affiché et la disponibilité des produits sont applicables au moment de la simulation et sont donc susceptibles d'évolution, notamment en fonction de la date de commande.
  92.     </div>
  93.     <div class="price">
  94.         <div class="label">Total TTC :</div>
  95.         <div class="data">{{ clientOrder.price|price }}</div>
  96.     </div>
  97.     {% if ( clientOrder.project.projectSettings.hasNewDesign is null or clientOrder.project.projectSettings.hasNewDesign == false ) %}
  98.     <div class="title">Devis valable 1 mois à compter de sa date d'émission</div>
  99.     {% endif %}
  100.     <div class="info_client" style="margin-top: 8mm;">
  101.         <div style="display: inline-block">
  102.             {% if clientOrder.project.projectSettings.hasNewDesign is null or clientOrder.project.projectSettings.hasNewDesign == false %}
  103.                 <div class="label">Vous souhaitez modifier votre projet ? Renseignez le lien ci-dessous dans votre navigateur</div>
  104.                 <div class="data" style="margin-top:3mm">Lien de sauvegarde : {{ clientOrder.saveLink }}</div>
  105.             {% else %}
  106.                 {% set devisCode = clientOrder.tinyUrls|last.slug|default('') %}
  107.                 {% if devisCode %}
  108.                     <div class="label">Vous souhaitez modifier votre projet ? Renseignez le code ci-dessous dans notre configurateur</div>
  109.                     <div class="data" style="margin-top:3mm">Code : {{ devisCode }}</div>
  110.                 {% endif %}
  111.             {% endif %}
  112.         </div>
  113.         {% if clientOrder.project.projectSettings.hasNewDesign is null or clientOrder.project.projectSettings.hasNewDesign == false %}
  114.             {% if clientOrder.saveLink %}
  115.                 <div style="display: inline-block; vertical-align: middle">
  116.                     <img src="{{ qr_code_data_uri(clientOrder.saveLink) }}" alt="QR Code" style="max-height: 60px; margin-left: 3mm">
  117.                 </div>
  118.             {% endif %}
  119.         {% endif %}
  120.     </div>
  121. </body>