templates/app/child/_partials/subscriptions-tab.html.twig line 1

  1. <div
  2.   class="tab-pane active"
  3.   id="subscriptions-tab"
  4.   role="tabpanel"
  5.   data-controller="subscription"
  6. >
  7.   <div class="card">
  8.     <div class="card-header">
  9.       <h5 class="card-title mb-0">{% trans %} Abonnements {% endtrans %}</h5>
  10.     </div>
  11.     <div class="card-body px-0">
  12.       <div class="card-body">
  13.         <div class="row">
  14.           <div class="col-md-12">
  15.             <div
  16.               class="d-flex flex-wrap align-items-center justify-content-end gap-2 mb-3"
  17.             >
  18.               <div>
  19.                 <ul class="nav nav-pills"></ul>
  20.               </div>
  21.               <div>
  22.                 <a
  23.                   href="{{ path('app_subscription_new') }}"
  24.                   class="btn btn-primary"
  25.                   data-bs-toggle="modal"
  26.                   data-bs-target="#add-modal"
  27.                 >
  28.                   <i class="bx bx-plus me-1"></i>
  29.                   {% trans %}Ajouter un nouveau{% endtrans %}
  30.                 </a>
  31.               </div>
  32.               {% include "app/subscription/add-modal.html.twig" with {'form':
  33.               form_new_subscription} %}
  34.             </div>
  35.           </div>
  36.         </div>
  37.         <div class="row">
  38.           <div class="col-xl-4 col-md-6">
  39.             <div class="card card-h-100">
  40.               <div class="card-body">
  41.                 <div class="row align-items-center">
  42.                   <div class="col-6">
  43.                     <span
  44.                       class="text-muted mb-3 lh-1 d-block text-truncate font-size-16"
  45.                     >
  46.                       {% trans %}Total des Abonnements{% endtrans %}
  47.                     </span>
  48.                     <h4 class="mb-3 text-info">
  49.                       <span
  50.                         class="counter-value"
  51.                         data-target="{{ child.totalSubscriptions }}"
  52.                         >0</span
  53.                       >
  54.                       {{ company.currencie }}
  55.                     </h4>
  56.                   </div>
  57.                 </div>
  58.               </div>
  59.             </div>
  60.           </div>
  61.           <div class="col-xl-4 col-md-6">
  62.             <div class="card card-h-100">
  63.               <div class="card-body">
  64.                 <div class="row align-items-center">
  65.                   <div class="col-6">
  66.                     <span
  67.                       class="text-muted mb-3 lh-1 d-block text-truncate font-size-16"
  68.                     >
  69.                       {% trans %}Total payé{% endtrans %}
  70.                     </span>
  71.                     <h4 class="mb-3 text-success">
  72.                       <span
  73.                         class="counter-value"
  74.                         data-target="{{ child.totalPayed }}"
  75.                         >0</span
  76.                       >
  77.                       {{ company.currencie }}
  78.                     </h4>
  79.                   </div>
  80.                 </div>
  81.               </div>
  82.             </div>
  83.           </div>
  84.           <div class="col-xl-4 col-md-6">
  85.             <div class="card card-h-100">
  86.               <div class="card-body">
  87.                 <div class="row align-items-center">
  88.                   <div class="col-6">
  89.                     <span
  90.                       class="text-muted mb-3 lh-1 d-block text-truncate font-size-16"
  91.                     >
  92.                       {% trans %} Total Reste{% endtrans %}
  93.                     </span>
  94.                     <h4 class="mb-3 text-warning">
  95.                       <span
  96.                         class="counter-value"
  97.                         data-target="{{ child.totalReste }}"
  98.                         >0</span
  99.                       >
  100.                       {{ company.currencie }}
  101.                     </h4>
  102.                   </div>
  103.                 </div>
  104.               </div>
  105.             </div>
  106.           </div>
  107.         </div>
  108.       </div>
  109.       <div
  110.         class="table-responsive px-3"
  111.         data-simplebar="init"
  112.         style="max-height: 352px"
  113.       >
  114.         <div class="simplebar-wrapper" style="margin: 0px -16px">
  115.           <div class="simplebar-height-auto-observer-wrapper">
  116.             <div class="simplebar-height-auto-observer"></div>
  117.           </div>
  118.           <div class="simplebar-mask">
  119.             <div class="simplebar-offset" style="right: -20px; bottom: 0px">
  120.               <div
  121.                 class="simplebar-content-wrapper"
  122.                 style="
  123.                   height: auto;
  124.                   padding-right: 20px;
  125.                   padding-bottom: 0px;
  126.                   overflow: hidden scroll;
  127.                 "
  128.               >
  129.                 <div class="simplebar-content" style="padding: 0px 16px">
  130.                   <table
  131.                     class="table align-middle table-nowrap table-borderless"
  132.                   >
  133.                     <tbody>
  134.                       {% for subscription in subscriptions|sort((b, a) =>
  135.                       a.expireDate <=> b.expireDate) %}
  136.                       <tr>
  137.                         {% if date(subscription.expireDate) > date() %}
  138.                         <td
  139.                           style="width: 40px"
  140.                           data-toggle="tooltip"
  141.                           data-placement="top"
  142.                           title="Valid"
  143.                         >
  144.                           <div class="font-size-22 text-success">
  145.                             <i class="bx bx-check-circle d-block"></i>
  146.                           </div>
  147.                         </td>
  148.                         {% else %}
  149.                         <td
  150.                           style="width: 40px"
  151.                           data-toggle="tooltip"
  152.                           data-placement="top"
  153.                           title="Expiré"
  154.                         >
  155.                           <div class="font-size-22 text-danger">
  156.                             <i class="bx bx-error-circle d-block"></i>
  157.                           </div>
  158.                         </td>
  159.                         {% endif %}
  160.                         <td>
  161.                           <div>
  162.                             <h5 class="font-size-16 mb-1">
  163.                               {{
  164.                                 subscription.service
  165.                                   ? subscription.service.name
  166.                                   : ""
  167.                               }}
  168.                               -
  169.                               {{
  170.                                 subscription.service
  171.                                   ? subscription.service.duration
  172.                                   : ""
  173.                               }}
  174.                               Jours
  175.                             </h5>
  176.                             <p class="text-muted mb-0 font-size-14">
  177.                               <b> {% trans %} Prix {% endtrans %} : </b>
  178.                               <span class="text-info"
  179.                                 >{{ subscription.getTotal|number_format(0, '.', ' ') }}
  180.                                 {{ company.currencie }}
  181.                               </span>
  182.                               /
  183.                               <b> {% trans %} Remise {% endtrans %} : </b>
  184.                               <span class="text-info"
  185.                                 >{{ subscription.discount|number_format(0, '.', ' ') }}
  186.                                 {{ company.currencie }}
  187.                               </span>
  188.                             </p>
  189.                           </div>
  190.                         </td>
  191.                         <td>
  192.                           <div class="text-end">
  193.                             <h5 class="font-size-16 mb-0">
  194.                               {{ subscription.startDate|date('Y-m-d') }}
  195.                             </h5>
  196.                             <p class="text-muted mb-0 font-size-14">
  197.                               {% trans %} Date {% endtrans %}
  198.                             </p>
  199.                           </div>
  200.                         </td>
  201.                         <td>
  202.                           <div class="text-end">
  203.                             <h5 class="font-size-16 mb-0">
  204.                               {{ subscription.expireDate|date('Y-m-d') }}
  205.                             </h5>
  206.                             <p class="text-muted mb-0 font-size-14">
  207.                               {% trans %} Expiration {% endtrans %}
  208.                             </p>
  209.                           </div>
  210.                         </td>
  211.                         <td>
  212.                           <div class="text-end">
  213.                             <h5 class="font-size-16 text-info mb-0">
  214.                               {{ (subscription.total - subscription.discount)|number_format(0, '.', ' ') }}
  215.                               {{ company.currencie }}
  216.                             </h5>
  217.                             <p class="text-muted mb-0 font-size-14">
  218.                               {% trans %}Le total à payer {% endtrans %}
  219.                             </p>
  220.                           </div>
  221.                         </td>
  222.                         <td>
  223.                           <div class="text-end">
  224.                             <h5 class="font-size-16 text-success mb-0">
  225.                               {{ (subscription.getTotalToPay() - subscription.getRestToPay())|number_format(0, '.', ' ') }}
  226.                               {{ company.currencie }}
  227.                             </h5>
  228.                             <p class="text-muted mb-0 font-size-14">
  229.                               {% trans %} Payé {% endtrans %}
  230.                             </p>
  231.                           </div>
  232.                         </td>
  233.                         <td>
  234.                           <div class="text-end">
  235.                             <h5 class="font-size-16 text-warning mb-0">
  236.                               {{ subscription.getRestToPay()|number_format(0, '.', ' ') }}
  237.                               {{ company.currencie }}
  238.                             </h5>
  239.                             <p class="text-muted mb-0 font-size-14">
  240.                               {% trans %} Reste {% endtrans %}
  241.                             </p>
  242.                           </div>
  243.                         </td>
  244.                       </tr>
  245.                       {% endfor %}
  246.                     </tbody>
  247.                   </table>
  248.                 </div>
  249.               </div>
  250.             </div>
  251.           </div>
  252.           <div
  253.             class="simplebar-placeholder"
  254.             style="width: auto; height: 455px"
  255.           ></div>
  256.         </div>
  257.         <div
  258.           class="simplebar-track simplebar-horizontal"
  259.           style="visibility: hidden"
  260.         >
  261.           <div
  262.             class="simplebar-scrollbar"
  263.             style="transform: translate3d(0px, 0px, 0px); display: none"
  264.           ></div>
  265.         </div>
  266.         <div
  267.           class="simplebar-track simplebar-vertical"
  268.           style="visibility: visible"
  269.         >
  270.           <div
  271.             class="simplebar-scrollbar"
  272.             style="
  273.               height: 284px;
  274.               transform: translate3d(0px, 0px, 0px);
  275.               display: block;
  276.             "
  277.           ></div>
  278.         </div>
  279.       </div>
  280.     </div>
  281.     <!-- end card body -->
  282.   </div>
  283.   <!-- end card -->
  284. </div>