var/cache/dev/twig/eb/eb1907d9df1593b91b642c3542569f9f961430a1a7475d4dd74684cb0491f4c9.php line 51

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* home/index.html.twig */
  14. class __TwigTemplate_03df87744905b25c1438013a9e013bb532336e4be64556eccb37881b1b0dd8c0 extends Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'css' => [$this'block_css'],
  24.             'breadcrumb' => [$this'block_breadcrumb'],
  25.             'content' => [$this'block_content'],
  26.             'javascript_script' => [$this'block_javascript_script'],
  27.         ];
  28.     }
  29.     protected function doGetParent(array $context)
  30.     {
  31.         // line 1
  32.         return "base.html.twig";
  33.     }
  34.     protected function doDisplay(array $context, array $blocks = [])
  35.     {
  36.         $macros $this->macros;
  37.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  38.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""home/index.html.twig"));
  39.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  40.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""home/index.html.twig"));
  41.         $this->parent $this->loadTemplate("base.html.twig""home/index.html.twig"1);
  42.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  43.         
  44.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  45.         
  46.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  47.     }
  48.     // line 2
  49.     public function block_css($context, array $blocks = [])
  50.     {
  51.         $macros $this->macros;
  52.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  53.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""css"));
  54.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  55.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""css"));
  56.         // line 3
  57.         echo "    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css\" integrity=\"sha512-mSYUmp1HYZDFaVKK//63EcZq4iFWFjxSL+Z3T/aCt4IO9Cejm03q3NKKYN6pFQzY0SBOr8h+eCIAZHPXcpZaNw==\" crossorigin=\"anonymous\" />
  58.     <style type=\"text/css\">
  59.     \t.total-bl{
  60.             color: #000;
  61.             font-weight: 600;
  62.             text-align: center;
  63.         }
  64.         .pswp__caption__center {text-align: center;}
  65.         .pswp{
  66.             z-index: 9999;
  67.         }
  68.         .galerie-item{
  69.         \tdisplay: flex;
  70.         \talign-items: flex-start;
  71.         \tflex-wrap: wrap;
  72.         }
  73.         .galerie-item >*{
  74.         \twidth: 116px;
  75.     \t\tmargin-right: 8px;
  76.         }
  77.         .thumbnail-galerie i {
  78. \t\t    position: absolute;
  79. \t\t    right: 7px;
  80. \t\t    top: 11px;
  81. \t\t    font-size: 15px;
  82. \t\t    color: #1ab394;
  83. \t\t}
  84.         .rounded-galerie {
  85. \t\t    position: absolute;
  86. \t\t    margin-top: -25px;
  87. \t\t    margin-left: auto;
  88. \t\t    border: 4px solid white;
  89. \t\t    height: 46px;
  90.     \t\twidth: 46px;
  91. \t\t    margin-right: auto;
  92. \t\t    left: 0;
  93. \t\t    right: 0;
  94. \t\t    z-index: 1;
  95. \t\t}
  96.         .heure-galerie{
  97.         \ttext-align: center;
  98. \t\t    margin-top: 14px;
  99. \t\t    font-size: 11px;
  100.         }
  101.         .thumbnail-galerie{
  102.         \theight: 110px;
  103.         }
  104.         .thumbnail-detail{padding: 12px 20px}
  105.   \t
  106.   \t\t.progress-bar{
  107.   \t\t\twidth: 789.01px;
  108. \t\t    position: relative;
  109. \t\t    height: 21px;
  110.   \t\t\tbackground: #1ab394;
  111.   \t\t}
  112.   \t\t.progress-bar .progress-val {
  113.   \t\t\tposition: absolute;
  114. \t\t    right: 9px;
  115. \t\t    font-size: 14px;
  116. \t\t    font-weight: bold;
  117. \t\t    color: #000;
  118.   \t\t}
  119.   \t\t.td-name{
  120.   \t\t\tdisplay: block;
  121. \t\t    padding-left: 8px;
  122. \t\t    padding-right: 20px;
  123. \t\t    overflow: hidden;
  124. \t\t    text-overflow: ellipsis;
  125. \t\t    white-space: nowrap;
  126.   \t\t}
  127.   \t\t.btn-trash{
  128.   \t\t\tposition: absolute;
  129.   \t\t\tdisplay: none;
  130.   \t\t\ttext-align: center;
  131.   \t\t\tbottom: -15px;
  132.   \t\t\tleft: 0;
  133.   \t\t\tright: 0;
  134.   \t\t\tmargin: auto;
  135.   \t\t}
  136.   \t\t.galerie-item .parent:hover .btn-trash{display: inline-block;}
  137.   \t\t.video-wrapper video{
  138.             max-width: 971px!important;
  139.             max-height: 600px!important;
  140.             display: block;
  141.             margin: auto;
  142.             margin-top: 25px;
  143.         }
  144.   \t
  145.         .row-sum-month {
  146.             display: flex;
  147.             align-items: center;
  148.             justify-content: space-between;
  149.         }
  150.        .row-sum-month > * {
  151.             flex: 1;
  152.             text-align: center;
  153.             font-weight: bold;
  154.             font-size: 15px;
  155.             margin-top: 2px;
  156.         }
  157.   \t
  158.         .btnShowMore{
  159.             cursor: pointer;
  160.             margin: auto;
  161.             max-width: 110px;
  162.         }
  163.         #section_more_galerie .icon-plus {
  164.           padding-top: 80px;
  165.           position: relative;
  166.           text-align: center;
  167.         }
  168.         #section_more_galerie .icon-plus span {
  169.           position: absolute;
  170.           top: 0;
  171.           left: 50%;
  172.           width: 24px;
  173.           height: 24px;
  174.           margin-left: -12px;
  175.           border-left: 1px solid #000;
  176.           border-bottom: 1px solid #000;
  177.           -webkit-transform: rotate(-45deg);
  178.           transform: rotate(-45deg);
  179.           -webkit-animation: sdb07 2s infinite;
  180.           animation: sdb07 2s infinite;
  181.           opacity: 0;
  182.           box-sizing: border-box;
  183.         }
  184.         #section_more_galerie .icon-plus span:nth-of-type(1) {
  185.           -webkit-animation-delay: 0s;
  186.           animation-delay: 0s;
  187.         }
  188.         #section_more_galerie .icon-plus span:nth-of-type(2) {
  189.           top: 16px;
  190.           -webkit-animation-delay: .15s;
  191.           animation-delay: .15s;
  192.         }
  193.         #section_more_galerie .icon-plus span:nth-of-type(3) {
  194.           top: 32px;
  195.           -webkit-animation-delay: .3s;
  196.           animation-delay: .3s;
  197.         }
  198.         @-webkit-keyframes sdb07 {
  199.           0% {
  200.             opacity: 0;
  201.           }
  202.           50% {
  203.             opacity: 1;
  204.           }
  205.           100% {
  206.             opacity: 0;
  207.           }
  208.         }
  209.         @keyframes sdb07 {
  210.           0% {
  211.             opacity: 0;
  212.           }
  213.           50% {
  214.             opacity: 1;
  215.           }
  216.           100% {
  217.             opacity: 0;
  218.           }
  219.         }
  220.         .caro-nav{
  221.             display: flex;
  222.             align-items: center;
  223.             justify-content: space-between;
  224.             position: absolute;
  225.             top: 45%;
  226.             left: 0;
  227.             right: 0;
  228.             transform: translateY(-50%);
  229.             z-index: 999;
  230.             font-size: 41px;
  231.             background: red;
  232.             height: 0;
  233.         }
  234.         .caro-nav > *{
  235.             color: #1ab394;
  236.             cursor: pointer;
  237.             width: 46px;
  238.             height: 46px;
  239.             display: inline-flex;
  240.             align-items: center;
  241.             justify-content: center;
  242.             border-radius: 50%;
  243.         }
  244.         .galerie-item.active{
  245.             display: flex;
  246.         }
  247.         .galerie-item{display: none;}
  248.         .item-dossier{
  249.             border: 1px solid;
  250.             border-radius: 10px;
  251.             margin-left: 7px;
  252.             padding: 6px 17px;
  253.             color: #676a6c;
  254.         }
  255.     </style>
  256. ";
  257.         
  258.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  259.         
  260.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  261.     }
  262.     // line 208
  263.     public function block_breadcrumb($context, array $blocks = [])
  264.     {
  265.         $macros $this->macros;
  266.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  267.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""breadcrumb"));
  268.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  269.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""breadcrumb"));
  270.         // line 209
  271.         echo "
  272.     <div class=\"row wrapper border-bottom white-bg page-heading\">
  273.         <div class=\"col-lg-10\">
  274.             <h1>Accueil</h1>
  275.         </div>
  276.     </div>
  277. ";
  278.         
  279.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  280.         
  281.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  282.     }
  283.     // line 218
  284.     public function block_content($context, array $blocks = [])
  285.     {
  286.         $macros $this->macros;
  287.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  288.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  289.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  290.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  291.         // line 219
  292.         echo "    <div class=\"row\">
  293.         <div class=\"col-lg-12\">
  294.         \t";
  295.         // line 221
  296.         $this->loadTemplate("flashes.html.twig""home/index.html.twig"221)->display($context);
  297.         // line 222
  298.         echo "
  299.         \t<div class=\"ibox \">
  300.             \t<div class=\"ibox-title\">
  301.                     <h5>Dernières images ";
  302.         // line 225
  303.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'225$this->source); })()), "environment", [], "any"falsefalsefalse225), "html"nulltrue);
  304.         echo "</h5> 
  305.                 </div>
  306.                 <div class=\"ibox-content\">
  307.                     <div class=\"carousel-container\" style=\"position: relative;\">
  308.     \t                <div class=\"row galerie-container\">
  309.     \t                    
  310.     \t                </div>
  311.                         <div class=\"caro-nav\">
  312.                             <span class=\"nav-left\">
  313.                                 <i class=\"fas fa-chevron-left\"></i>
  314.                             </span>
  315.                             <span class=\"nav-right\">
  316.                                 <i class=\"fas fa-chevron-right\"></i>
  317.                             </span>
  318.                         </div>
  319.                     </div>
  320.                     <div class=\"btnShowMore\" style=\"display: none;\">
  321.                         <div id=\"section_more_galerie\" style=\"height: 51px;\">
  322.                           <div class=\"icon-plus\"><span></span><span></div>
  323.                         </div>
  324.                         <div class=\"text-center\" style=\"font-size: 17px\">Voir plus</div>
  325.                     </div>
  326. \t            </div>
  327. \t        </div>
  328.             <div class=\"ibox\">
  329.                 <div class=\"ibox-content\">
  330.                     <h2 style=\"margin-bottom: 22px\">Liste document en attente</h2>
  331.                     <div class=\"row\">
  332.                         ";
  333.         // line 255
  334.         $context['_parent'] = $context;
  335.         $context['_seq'] = twig_ensure_traversable((isset($context["countDocumentAttente"]) || array_key_exists("countDocumentAttente"$context) ? $context["countDocumentAttente"] : (function () { throw new RuntimeError('Variable "countDocumentAttente" does not exist.'255$this->source); })()));
  336.         foreach ($context['_seq'] as $context["_key"] => $context["item"]) {
  337.             echo 
  338.                             <a class=\"col-lg-3 item-dossier\" href=\"";
  339.             // line 256
  340.             echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("email_document_preview_list", ["dossier" => twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["item"], "entity", [], "any"falsefalsefalse256), "dossier", [], "any"falsefalsefalse256)]), "html"nulltrue);
  341.             echo "\">
  342.                                 <h3 style=\"text-transform:capitalize;\">";
  343.             // line 257
  344.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["item"], "dossier", [], "any"falsefalsefalse257), "html"nulltrue);
  345.             echo " : <span>";
  346.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source$context["item"], "entity", [], "any"falsefalsefalse257), "nb", [], "any"falsefalsefalse257), "html"nulltrue);
  347.             echo "</span></h3>
  348.                             </a>
  349.                         ";
  350.         }
  351.         $_parent $context['_parent'];
  352.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['item'], $context['_parent'], $context['loop']);
  353.         $context array_intersect_key($context$_parent) + $_parent;
  354.         // line 260
  355.         echo "                    </div>
  356.                 </div>
  357.             </div>
  358.             <div class=\"ibox\">
  359.                 <div class=\"ibox-content\">
  360.                     ";
  361.         // line 266
  362.         echo twig_include($this->env$context"home/filter.html.twig");
  363.         echo "
  364.                 </div>
  365.             </div>
  366.             
  367.             <div class=\"ibox \">
  368.             \t<div class=\"ibox-title\">
  369.                     <h5>Achats-Ventes</h5> 
  370.                 </div>
  371.                 <div class=\"ibox-content\">
  372.                     <h2 class=\"achat-vente-recap\" style=\"font-size: 25px;font-weight: bold;margin-bottom: 17px;text-align: center;\"></h2>
  373. \t                <div>
  374. \t                    <canvas id=\"myChartAchat\" height=\"350\"></canvas>
  375. \t                </div>
  376. \t                <div class=\"row-sum-month\">
  377.                         ";
  378.         // line 280
  379.         $context['_parent'] = $context;
  380.         $context['_seq'] = twig_ensure_traversable((isset($context["tauxMargin"]) || array_key_exists("tauxMargin"$context) ? $context["tauxMargin"] : (function () { throw new RuntimeError('Variable "tauxMargin" does not exist.'280$this->source); })()));
  381.         foreach ($context['_seq'] as $context["_key"] => $context["i"]) {
  382.             // line 281
  383.             echo "                            <span class=\"month\">";
  384.             echo twig_escape_filter($this->env$context["i"], "html"nulltrue);
  385.             echo "%</span>
  386.                         ";
  387.         }
  388.         $_parent $context['_parent'];
  389.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['i'], $context['_parent'], $context['loop']);
  390.         $context array_intersect_key($context$_parent) + $_parent;
  391.         // line 283
  392.         echo "                    </div>
  393. \t            </div>
  394. \t        </div>
  395. \t        <div class=\"ibox \">
  396.             \t<div class=\"ibox-title\">
  397.                     <h5>Marge</h5> 
  398.                 </div>
  399.                 <div class=\"ibox-content\">
  400.                 \t<h2 class=\"marge-year text-center\" style=\"font-size: 25px;font-weight: bold;margin-bottom: 17px;\"></h2>
  401.                 \t<h5 class=\"text-center marge-resultat\" style=\"font-size: 17px\"></h5>
  402. \t                <div style=\"min-height: 1000px;\">
  403. \t                    <canvas id=\"chartMarge\" height=\"500\"></canvas>
  404. \t                </div>
  405. \t            </div>
  406. \t        </div>
  407. \t        <div class=\"ibox \">
  408.             \t<div class=\"ibox-title\">
  409.                     <h5>Gallery ";
  410.         // line 304
  411.         echo twig_escape_filter($this->env, (isset($context["currentMonth"]) || array_key_exists("currentMonth"$context) ? $context["currentMonth"] : (function () { throw new RuntimeError('Variable "currentMonth" does not exist.'304$this->source); })()), "html"nulltrue);
  412.         echo "</h5> 
  413.                 </div>
  414.                 <div class=\"ibox-content\">
  415.                 \t<div class=\"table-responsive\">
  416.                 \t<table class=\"table\">
  417.                 \t\t<thead>
  418.                 \t\t\t<tr>
  419.                 \t\t\t\t<th width=\"175px\"></th>
  420.                 \t\t\t\t<th></th>
  421.                 \t\t\t\t<th width=\"150px\" style=\"text-align: right;\">Photos</th>
  422.                 \t\t\t\t<th width=\"150px\" style=\"text-align: right;\">Classement</th>
  423.                 \t\t\t</tr>
  424.                 \t\t</thead>
  425.                 \t\t<tbody>
  426.                 \t\t\t";
  427.         // line 318
  428.         $context['_parent'] = $context;
  429.         $context['_seq'] = twig_ensure_traversable((isset($context["galleryUser"]) || array_key_exists("galleryUser"$context) ? $context["galleryUser"] : (function () { throw new RuntimeError('Variable "galleryUser" does not exist.'318$this->source); })()));
  430.         $context['loop'] = [
  431.           'parent' => $context['_parent'],
  432.           'index0' => 0,
  433.           'index'  => 1,
  434.           'first'  => true,
  435.         ];
  436.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  437.             $length count($context['_seq']);
  438.             $context['loop']['revindex0'] = $length 1;
  439.             $context['loop']['revindex'] = $length;
  440.             $context['loop']['length'] = $length;
  441.             $context['loop']['last'] = === $length;
  442.         }
  443.         foreach ($context['_seq'] as $context["_key"] => $context["gal"]) {
  444.             // line 319
  445.             echo "                \t\t\t<tr>
  446.                 \t\t\t\t<td>
  447.                 \t\t\t\t\t<div class=\"td-name\">
  448.                 \t\t\t\t\t\t<span>
  449. \t    \t\t\t\t\t\t\t\t\t";
  450.             // line 323
  451.             if ((twig_in_filter(twig_get_attribute($this->env$this->source$context["gal"], "uid", [], "any"falsefalsefalse323), twig_get_array_keys_filter((isset($context["utilisateurs"]) || array_key_exists("utilisateurs"$context) ? $context["utilisateurs"] : (function () { throw new RuntimeError('Variable "utilisateurs" does not exist.'323$this->source); })()))) && twig_get_attribute($this->env$this->source, (isset($context["utilisateurs"]) || array_key_exists("utilisateurs"$context) ? $context["utilisateurs"] : (function () { throw new RuntimeError('Variable "utilisateurs" does not exist.'323$this->source); })()), twig_get_attribute($this->env$this->source$context["gal"], "uid", [], "any"falsefalsefalse323), [], "array"falsefalsefalse323))) {
  452.                 echo 
  453. \t                                            <img data-file=\"data:image/jpeg;base64,";
  454.                 // line 324
  455.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["utilisateurs"]) || array_key_exists("utilisateurs"$context) ? $context["utilisateurs"] : (function () { throw new RuntimeError('Variable "utilisateurs" does not exist.'324$this->source); })()), twig_get_attribute($this->env$this->source$context["gal"], "uid", [], "any"falsefalsefalse324), [], "array"falsefalsefalse324), "html"nulltrue);
  456.                 echo "\" src=\"data:image/jpeg;base64,";
  457.                 echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["utilisateurs"]) || array_key_exists("utilisateurs"$context) ? $context["utilisateurs"] : (function () { throw new RuntimeError('Variable "utilisateurs" does not exist.'324$this->source); })()), twig_get_attribute($this->env$this->source$context["gal"], "uid", [], "any"falsefalsefalse324), [], "array"falsefalsefalse324), "html"nulltrue);
  458.                 echo "\" 
  459. \t                                            class=\"entreprise-img rounded-img\">
  460. \t                                        ";
  461.             }
  462.             // line 327
  463.             echo "\t                                    </span>
  464.                 \t\t\t\t\t\t<span>
  465.                 \t\t\t\t\t\t\t";
  466.             // line 329
  467.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["gal"], "firstname", [], "any"falsefalsefalse329), "html"nulltrue);
  468.             echo " ";
  469.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["gal"], "lastname", [], "any"falsefalsefalse329), "html"nulltrue);
  470.             echo "
  471.                 \t\t\t\t\t\t</span>
  472. \t                \t\t\t\t</div>
  473. \t                \t\t\t</td>
  474.                 \t\t\t\t<td>
  475.                 \t\t\t\t\t<div class=\"progress-container\" data-nbr-photo=\"";
  476.             // line 334
  477.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["gal"], "nbr_gallery", [], "any"falsefalsefalse334), "html"nulltrue);
  478.             echo "\">
  479.                 \t\t\t\t\t\t<div class=\"progress-bar\">
  480.                 \t\t\t\t\t\t\t<span class=\"progress-val\">";
  481.             // line 336
  482.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["gal"], "nbr_gallery", [], "any"falsefalsefalse336), "html"nulltrue);
  483.             echo "</span>
  484.                 \t\t\t\t\t\t</div>
  485.                 \t\t\t\t\t</div>
  486.                 \t\t\t\t</td>
  487.                 \t\t\t\t<td style=\"text-align: right;\">";
  488.             // line 340
  489.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["gal"], "nbr_gallery", [], "any"falsefalsefalse340), "html"nulltrue);
  490.             echo "</td>
  491.                 \t\t\t\t<td style=\"text-align: right;\">";
  492.             // line 341
  493.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse341), "html"nulltrue);
  494.             echo "</td>
  495.                 \t\t\t</tr>
  496.                 \t\t\t";
  497.             ++$context['loop']['index0'];
  498.             ++$context['loop']['index'];
  499.             $context['loop']['first'] = false;
  500.             if (isset($context['loop']['length'])) {
  501.                 --$context['loop']['revindex0'];
  502.                 --$context['loop']['revindex'];
  503.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  504.             }
  505.         }
  506.         $_parent $context['_parent'];
  507.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['gal'], $context['_parent'], $context['loop']);
  508.         $context array_intersect_key($context$_parent) + $_parent;
  509.         // line 344
  510.         echo "                \t\t</tbody>
  511.                 \t</table>
  512.                 \t</div>
  513. \t            </div>
  514. \t        </div>
  515.         </div>
  516.     </div>
  517.     
  518. ";
  519.         
  520.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  521.         
  522.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  523.     }
  524.     // line 356
  525.     public function block_javascript_script($context, array $blocks = [])
  526.     {
  527.         $macros $this->macros;
  528.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  529.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->enter($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript_script"));
  530.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  531.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascript_script"));
  532.         // line 357
  533.         echo "    <script type=\"text/javascript\"src=\"https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js\"></script>
  534.     <script type=\"text/javascript\"src=\"https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js\"></script>
  535.     <script type=\"text/javascript\"src=\"https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js\"></script>
  536.     <script src=\"https://cdn.jsdelivr.net/npm/chart.js@2.9.4/dist/Chart.min.js\"></script>
  537.     <script src=\"https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe.min.js\"></script>
  538.     <script src=\"https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe-ui-default.min.js\"></script>
  539.     <script type=\"text/javascript\">
  540.     \t\$maxPhotoVal = ";
  541.         // line 365
  542.         echo json_encode((isset($context["maxPhotoVal"]) || array_key_exists("maxPhotoVal"$context) ? $context["maxPhotoVal"] : (function () { throw new RuntimeError('Variable "maxPhotoVal" does not exist.'365$this->source); })()));
  543.         echo ";
  544.     \t\$('.progress-container').each(function( index ) {
  545.             \$barWidth = parseFloat(\$(this).width()) ;
  546.             \$nbrPhoto = parseFloat(\$(this).data('nbr-photo'));
  547.             \$progress = \$(this).find('.progress-bar');
  548.             if(\$maxPhotoVal > 0)
  549.             \t\$progressWidth = (\$nbrPhoto*\$barWidth)/\$maxPhotoVal;
  550.             else
  551.             \t\$progressWidth = 0;
  552.             \$(this).find('.progress-bar').css('width', \$progressWidth);
  553.         })
  554.         var valChart = ";
  555.         // line 380
  556.         echo json_encode((isset($context["valChart"]) || array_key_exists("valChart"$context) ? $context["valChart"] : (function () { throw new RuntimeError('Variable "valChart" does not exist.'380$this->source); })()));
  557.         echo ";
  558.         var valChartNonLie = ";
  559.         // line 381
  560.         echo json_encode((isset($context["valChartNonLie"]) || array_key_exists("valChartNonLie"$context) ? $context["valChartNonLie"] : (function () { throw new RuntimeError('Variable "valChartNonLie" does not exist.'381$this->source); })()));
  561.         echo ";
  562.         var valChartFact = ";
  563.         // line 382
  564.         echo json_encode((isset($context["valChartFact"]) || array_key_exists("valChartFact"$context) ? $context["valChartFact"] : (function () { throw new RuntimeError('Variable "valChartFact" does not exist.'382$this->source); })()));
  565.         echo ";
  566.         var valChartFactClient = ";
  567.         // line 383
  568.         echo json_encode((isset($context["valChartFactClient"]) || array_key_exists("valChartFactClient"$context) ? $context["valChartFactClient"] : (function () { throw new RuntimeError('Variable "valChartFactClient" does not exist.'383$this->source); })()));
  569.         echo ";
  570.         var valChartAmortMensAssurance = ";
  571.         // line 384
  572.         echo json_encode((isset($context["valChartAmortMensAssurance"]) || array_key_exists("valChartAmortMensAssurance"$context) ? $context["valChartAmortMensAssurance"] : (function () { throw new RuntimeError('Variable "valChartAmortMensAssurance" does not exist.'384$this->source); })()));
  573.         echo ";
  574.         var valChartCoutGb = ";
  575.         // line 385
  576.         echo json_encode((isset($context["valChartCoutGb"]) || array_key_exists("valChartCoutGb"$context) ? $context["valChartCoutGb"] : (function () { throw new RuntimeError('Variable "valChartCoutGb" does not exist.'385$this->source); })()));
  577.         echo ";
  578.         var ctxA = document.getElementById('myChartAchat').getContext('2d');
  579.         let datasets = [
  580.                 {
  581.                     label: \"BL HT: ";
  582.         // line 390
  583.         ((twig_get_attribute($this->env$this->source, (isset($context["montant"]) || array_key_exists("montant"$context) ? $context["montant"] : (function () { throw new RuntimeError('Variable "montant" does not exist.'390$this->source); })()), "sum_ht", [], "array"falsefalsefalse390)) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["montant"]) || array_key_exists("montant"$context) ? $context["montant"] : (function () { throw new RuntimeError('Variable "montant" does not exist.'390$this->source); })()), "sum_ht", [], "array"falsefalsefalse390), 2","""), "html"nulltrue))) : (print ("0")));
  584.         echo "€\",
  585.                     data: valChart,
  586.                     backgroundColor: 'rgb(50 163 243)',
  587.                     hoverBackgroundColor: 'rgb(50 163 243)',
  588.                     hoverBorderColor: 'rgb(50 163 243)',
  589.                     borderColor: 'rgb(50 163 243)',
  590.                     fontColor: \"blue\",
  591.                     borderWidth: 1
  592.                 },
  593.                 {
  594.                     label: \"BL NON LIE: ";
  595.         // line 400
  596.         ((twig_get_attribute($this->env$this->source, (isset($context["montantBlNonRelie"]) || array_key_exists("montantBlNonRelie"$context) ? $context["montantBlNonRelie"] : (function () { throw new RuntimeError('Variable "montantBlNonRelie" does not exist.'400$this->source); })()), "sum_ht", [], "array"falsefalsefalse400)) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["montantBlNonRelie"]) || array_key_exists("montantBlNonRelie"$context) ? $context["montantBlNonRelie"] : (function () { throw new RuntimeError('Variable "montantBlNonRelie" does not exist.'400$this->source); })()), "sum_ht", [], "array"falsefalsefalse400), 2","""), "html"nulltrue))) : (print ("0")));
  597.         echo "€\",
  598.                     data: valChartNonLie,
  599.                     backgroundColor: 'rgb(173 255 47)',
  600.                     hoverBackgroundColor: 'rgb(173 255 47)',
  601.                     hoverBorderColor: 'rgb(173 255 47)',
  602.                     borderColor: 'rgb(173 255 47)',
  603.                     fontColor: \"greenyellow\",
  604.                     borderWidth: 1
  605.                 },
  606.                 {
  607.                     label: \"Facturation HT: ";
  608.         // line 410
  609.         ((twig_get_attribute($this->env$this->source, (isset($context["montantFact"]) || array_key_exists("montantFact"$context) ? $context["montantFact"] : (function () { throw new RuntimeError('Variable "montantFact" does not exist.'410$this->source); })()), "sum_ht", [], "array"falsefalsefalse410)) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["montantFact"]) || array_key_exists("montantFact"$context) ? $context["montantFact"] : (function () { throw new RuntimeError('Variable "montantFact" does not exist.'410$this->source); })()), "sum_ht", [], "array"falsefalsefalse410), 2","""), "html"nulltrue))) : (print ("0")));
  610.         echo "€\",
  611.                     data: valChartFact,
  612.                     backgroundColor: 'rgb(24 166 137)',
  613.                     hoverBackgroundColor: 'rgb(24 166 137)',
  614.                     hoverBorderColor: 'rgb(24 166 137)',
  615.                     borderColor: 'rgb(24 166 137)',
  616.                     borderWidth: 1
  617.                 },
  618.                 {
  619.                     label: \"Cout Global: ";
  620.         // line 419
  621.         (((isset($context["sumCoutGb"]) || array_key_exists("sumCoutGb"$context) ? $context["sumCoutGb"] : (function () { throw new RuntimeError('Variable "sumCoutGb" does not exist.'419$this->source); })())) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->env, (isset($context["sumCoutGb"]) || array_key_exists("sumCoutGb"$context) ? $context["sumCoutGb"] : (function () { throw new RuntimeError('Variable "sumCoutGb" does not exist.'419$this->source); })()), 2","""), "html"nulltrue))) : (print ("0")));
  622.         echo "€\",
  623.                     data: valChartCoutGb,
  624.                     backgroundColor: 'orange',
  625.                     borderColor: 'orange',
  626.                     borderWidth: 1
  627.                 },
  628.                 {
  629.                     label: \"Facture client HT: ";
  630.         // line 426
  631.         ((twig_get_attribute($this->env$this->source, (isset($context["montantFactClient"]) || array_key_exists("montantFactClient"$context) ? $context["montantFactClient"] : (function () { throw new RuntimeError('Variable "montantFactClient" does not exist.'426$this->source); })()), "sum_ht", [], "array"falsefalsefalse426)) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["montantFactClient"]) || array_key_exists("montantFactClient"$context) ? $context["montantFactClient"] : (function () { throw new RuntimeError('Variable "montantFactClient" does not exist.'426$this->source); })()), "sum_ht", [], "array"falsefalsefalse426), 2","""), "html"nulltrue))) : (print ("0")));
  632.         echo "€\",
  633.                     data: valChartFactClient,
  634.                     backgroundColor: 'pink',
  635.                     borderColor: 'pink',
  636.                     borderWidth: 1
  637.                 }
  638.             ];
  639.         ";
  640.         // line 434
  641.         if (=== twig_compare((isset($context["isgestionFinancements"]) || array_key_exists("isgestionFinancements"$context) ? $context["isgestionFinancements"] : (function () { throw new RuntimeError('Variable "isgestionFinancements" does not exist.'434$this->source); })()), 1)) {
  642.             // line 435
  643.             echo "            datasets.push({
  644.                     label: \"Mensualité avec assurance: ";
  645.             // line 436
  646.             ((twig_get_attribute($this->env$this->source, (isset($context["sumMontantAmortMensAssurance"]) || array_key_exists("sumMontantAmortMensAssurance"$context) ? $context["sumMontantAmortMensAssurance"] : (function () { throw new RuntimeError('Variable "sumMontantAmortMensAssurance" does not exist.'436$this->source); })()), "mensualite_avec_assurance", [], "array"falsefalsefalse436)) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->envtwig_get_attribute($this->env$this->source, (isset($context["sumMontantAmortMensAssurance"]) || array_key_exists("sumMontantAmortMensAssurance"$context) ? $context["sumMontantAmortMensAssurance"] : (function () { throw new RuntimeError('Variable "sumMontantAmortMensAssurance" does not exist.'436$this->source); })()), "mensualite_avec_assurance", [], "array"falsefalsefalse436), 2","""), "html"nulltrue))) : (print ("0")));
  647.             echo "€\",
  648.                     data: valChartAmortMensAssurance,
  649.                     backgroundColor: 'rgb(255, 90, 196)',
  650.                     hoverBackgroundColor: 'rgb(255, 90, 196)',
  651.                     hoverBorderColor: 'rgb(255, 90, 196)',
  652.                     borderColor: 'rgb(255, 90, 196)',
  653.                     borderWidth: 1
  654.                 });
  655.         ";
  656.         }
  657.         // line 445
  658.         echo "        var data = {
  659.             labels:  [\"jan\", \"Fév\", 'Mars', 'Avr', 'Mais', 'Juin', 'Juil', 'Aout', 'sep', 'Oct', 'Nov', 'Déc'],
  660.             datasets: datasets
  661.         };
  662.         \$('.achat-vente-recap').text(\"";
  663.         // line 449
  664.         echo twig_escape_filter($this->envtwig_capitalize_string_filter($this->env, (isset($context["full_month"]) || array_key_exists("full_month"$context) ? $context["full_month"] : (function () { throw new RuntimeError('Variable "full_month" does not exist.'449$this->source); })())), "html"nulltrue);
  665.         echo " - Taux de Marge ";
  666.         echo twig_escape_filter($this->envtwig_number_format_filter($this->env, (isset($context["tauxMarginCumulle"]) || array_key_exists("tauxMarginCumulle"$context) ? $context["tauxMarginCumulle"] : (function () { throw new RuntimeError('Variable "tauxMarginCumulle" does not exist.'449$this->source); })()), 2","""), "html"nulltrue);
  667.         echo "%\");
  668.         var myChart = new Chart(ctxA, {
  669.             type: 'bar',
  670.             data: data,
  671.             options: {
  672.             \tbarValueSpacing: 40,
  673.                 responsive: true,
  674.                 maintainAspectRatio: false,
  675. \t\t\t    \"hover\": {
  676. \t\t\t      \"animationDuration\": 0
  677. \t\t\t    },
  678. \t\t\t    \"animation\": {
  679. \t\t\t      \"duration\": 1,
  680. \t\t\t      \"onComplete\": function() {
  681. \t\t\t        var chartInstance = this.chart,
  682. \t\t\t          ctx = chartInstance.ctx;
  683. \t\t\t        ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
  684. \t\t\t        ctx.textAlign = 'center';
  685. \t\t\t        ctx.textBaseline = 'bottom';
  686. \t\t\t        this.data.datasets.forEach(function(dataset, i) {
  687. \t\t\t          var meta = chartInstance.controller.getDatasetMeta(i);
  688. \t\t\t          meta.data.forEach(function(bar, index) {
  689. \t\t\t            var data = dataset.data[index];
  690. \t\t\t            ctx.fillText(data, bar._model.x, bar._model.y - 5);
  691. \t\t\t          });
  692. \t\t\t        });
  693. \t\t\t      }
  694. \t\t\t    },
  695. \t\t\t    tooltips: {
  696. \t\t\t\t    \"enabled\": true,
  697. \t\t            callbacks: {
  698. \t\t                label: function(tooltipItem, data) {
  699. \t\t                    var label = data.datasets[tooltipItem.datasetIndex].label || '';
  700. \t\t                    if (label) {
  701. \t\t                        label += ': ';
  702. \t\t                    }
  703. \t\t                    label += Math.round(tooltipItem.yLabel * 100) / 100;
  704. \t\t                    return Math.round(tooltipItem.yLabel * 100) / 100;
  705. \t\t                }
  706. \t\t            }
  707. \t\t\t    },
  708. \t\t\t    scales: {
  709. \t\t\t    \ty: {
  710.                         beginAtZero: true
  711.                     },
  712. \t\t\t      yAxes: [{
  713. \t\t\t        display: false,
  714. \t\t\t        gridLines: {
  715. \t\t\t          display: false
  716. \t\t\t        },
  717. \t\t\t        ticks: {
  718. \t\t\t          display: false,
  719. \t\t\t          beginAtZero: true,
  720. \t\t\t          min:0
  721. \t\t\t        }
  722. \t\t\t      }],
  723. \t\t\t      xAxes: [{
  724. \t\t\t        gridLines: {
  725. \t\t\t          display: false
  726. \t\t\t        },
  727. \t\t\t        ticks: {
  728. \t\t\t          beginAtZero: true
  729. \t\t\t        }
  730. \t\t\t      }]
  731. \t\t\t    },
  732. \t\t\t    title: {
  733.                     display: false,
  734.                     fontSize: '25',
  735.                     text: '";
  736.         // line 521
  737.         echo twig_escape_filter($this->envtwig_capitalize_string_filter($this->env, (isset($context["full_month"]) || array_key_exists("full_month"$context) ? $context["full_month"] : (function () { throw new RuntimeError('Variable "full_month" does not exist.'521$this->source); })())), "html"nulltrue);
  738.         echo "'
  739.                 }
  740. \t\t\t}
  741.         });
  742.         /* CHART MARGE */
  743.         var chartMarge = ";
  744.         // line 527
  745.         echo json_encode((isset($context["chartMarge"]) || array_key_exists("chartMarge"$context) ? $context["chartMarge"] : (function () { throw new RuntimeError('Variable "chartMarge" does not exist.'527$this->source); })()));
  746.         echo ";
  747.         var chartColor = ";
  748.         // line 528
  749.         echo json_encode((isset($context["chartColor"]) || array_key_exists("chartColor"$context) ? $context["chartColor"] : (function () { throw new RuntimeError('Variable "chartColor" does not exist.'528$this->source); })()));
  750.         echo ";
  751.         var ctxM = document.getElementById('chartMarge').getContext('2d');
  752.         \$('.marge-resultat').text(\"Marge: ";
  753.         // line 530
  754.         (((isset($context["sumMarge"]) || array_key_exists("sumMarge"$context) ? $context["sumMarge"] : (function () { throw new RuntimeError('Variable "sumMarge" does not exist.'530$this->source); })())) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->env, (isset($context["sumMarge"]) || array_key_exists("sumMarge"$context) ? $context["sumMarge"] : (function () { throw new RuntimeError('Variable "sumMarge" does not exist.'530$this->source); })()), 2","""), "html"nulltrue))) : (print ("0")));
  755.         echo "€  /  M-1: ";
  756.         (((isset($context["sumMarge_1"]) || array_key_exists("sumMarge_1"$context) ? $context["sumMarge_1"] : (function () { throw new RuntimeError('Variable "sumMarge_1" does not exist.'530$this->source); })())) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->env, (isset($context["sumMarge_1"]) || array_key_exists("sumMarge_1"$context) ? $context["sumMarge_1"] : (function () { throw new RuntimeError('Variable "sumMarge_1" does not exist.'530$this->source); })()), 2","""), "html"nulltrue))) : (print ("0")));
  757.         echo "€\");
  758.         \$('.marge-year').text(\"";
  759.         // line 531
  760.         echo twig_escape_filter($this->envtwig_capitalize_string_filter($this->env, (isset($context["full_month"]) || array_key_exists("full_month"$context) ? $context["full_month"] : (function () { throw new RuntimeError('Variable "full_month" does not exist.'531$this->source); })())), "html"nulltrue);
  761.         echo "\");
  762.         var data2 = {
  763.                 labels:  [\"jan\", \"Fév\", 'Mars', 'Avr', 'Mais', 'Juin', 'Juil', 'Aout', 'sep', 'Oct', 'Nov', 'Déc'],
  764.                 datasets: [
  765.                 \t{
  766. \t                    label: \"Marge: ";
  767.         // line 537
  768.         (((isset($context["sumMarge"]) || array_key_exists("sumMarge"$context) ? $context["sumMarge"] : (function () { throw new RuntimeError('Variable "sumMarge" does not exist.'537$this->source); })())) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->env, (isset($context["sumMarge"]) || array_key_exists("sumMarge"$context) ? $context["sumMarge"] : (function () { throw new RuntimeError('Variable "sumMarge" does not exist.'537$this->source); })()), 2","""), "html"nulltrue))) : (print ("0")));
  769.         echo "€  /  M-1: ";
  770.         (((isset($context["sumMarge_1"]) || array_key_exists("sumMarge_1"$context) ? $context["sumMarge_1"] : (function () { throw new RuntimeError('Variable "sumMarge_1" does not exist.'537$this->source); })())) ? (print (twig_escape_filter($this->envtwig_number_format_filter($this->env, (isset($context["sumMarge_1"]) || array_key_exists("sumMarge_1"$context) ? $context["sumMarge_1"] : (function () { throw new RuntimeError('Variable "sumMarge_1" does not exist.'537$this->source); })()), 2","""), "html"nulltrue))) : (print ("0")));
  771.         echo "€\",
  772. \t                    data: chartMarge,
  773. \t                    backgroundColor: chartColor,
  774. \t                    borderColor: chartColor,
  775. \t                    borderWidth: 1
  776. \t                }
  777.                 ]
  778.             };
  779.         var myChartMarge = new Chart(ctxM, {
  780.             type: 'bar',
  781.             data: data2,
  782.             options: {
  783.             \tlegend: {
  784. \t\t            display: false,
  785. \t\t            labels: {
  786. \t\t                fontColor: 'rgb(255, 99, 132)'
  787. \t\t            }
  788. \t\t        },
  789.             \tbarValueSpacing: 40,
  790.                 responsive: true,
  791.                 maintainAspectRatio: false,
  792. \t\t\t    \"hover\": {
  793. \t\t\t      \"animationDuration\": 0
  794. \t\t\t    },
  795. \t\t\t    \"animation\": {
  796. \t\t\t      \"duration\": 1,
  797. \t\t\t      \"onComplete\": function() {
  798. \t\t\t        var chartInstance = this.chart,
  799. \t\t\t          ctx = chartInstance.ctx;
  800. \t\t\t        ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
  801. \t\t\t        ctx.textAlign = 'center';
  802. \t\t\t        ctx.textBaseline = 'bottom';
  803. \t\t\t        this.data.datasets.forEach(function(dataset, i) {
  804. \t\t\t          var meta = chartInstance.controller.getDatasetMeta(i);
  805. \t\t\t          meta.data.forEach(function(bar, index) {
  806. \t\t\t            var data2 = dataset.data[index];
  807. \t\t\t            ctx.fillText(data2, bar._model.x, bar._model.y - 5);
  808. \t\t\t          });
  809. \t\t\t        });
  810. \t\t\t      }
  811. \t\t\t    },
  812. \t\t\t    tooltips: {
  813. \t\t\t\t    \"enabled\": true,
  814. \t\t            callbacks: {
  815. \t\t                label: function(tooltipItem, data) {
  816. \t\t                    var label = data.datasets[tooltipItem.datasetIndex].label || '';
  817. \t\t                    if (label) {
  818. \t\t                        label += ': ';
  819. \t\t                    }
  820. \t\t                    label += Math.round(tooltipItem.yLabel * 100) / 100;
  821. \t\t                    return \"\";
  822. \t\t                }
  823. \t\t            }
  824. \t\t\t    },
  825. \t\t\t    scales: {
  826. \t\t\t    \ty: {
  827.                         beginAtZero: true
  828.                     },
  829. \t\t\t      yAxes: [{
  830. \t\t\t        display: false,
  831. \t\t\t        gridLines: {
  832. \t\t\t          display: false
  833. \t\t\t        },
  834. \t\t\t        ticks: {
  835. \t\t\t          display: false,
  836. \t\t\t          beginAtZero: true,
  837. \t\t\t        }
  838. \t\t\t      }],
  839. \t\t\t      xAxes: [{
  840. \t\t\t        gridLines: {
  841. \t\t\t          display: false
  842. \t\t\t        },
  843. \t\t\t        ticks: {
  844. \t\t\t          beginAtZero: true
  845. \t\t\t        }
  846. \t\t\t      }]
  847. \t\t\t    },
  848. \t\t\t    title: {
  849.                     display: false,
  850.                     fontSize: '25',
  851.                     text: '";
  852.         // line 621
  853.         echo twig_escape_filter($this->envtwig_capitalize_string_filter($this->env, (isset($context["full_month"]) || array_key_exists("full_month"$context) ? $context["full_month"] : (function () { throw new RuntimeError('Variable "full_month" does not exist.'621$this->source); })())), "html"nulltrue);
  854.         echo "'
  855.                 }
  856. \t\t\t}
  857.         });
  858.         function loadGalerie(page){
  859.             \$.ajax({
  860.                 url: \"";
  861.         // line 629
  862.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("load_galerie_xhr");
  863.         echo "\",
  864.                 type: \"GET\",
  865.                 async: true,
  866.                 dataType: \"json\",
  867.                 data: {
  868.                     page:page
  869.                 },
  870.                 success: function(response, status) {
  871.                     if(response.status == 200){
  872.                         \$('.galerie-item').removeClass('active');
  873.                         \$('.galerie-container').append(response.preview);
  874.                     }
  875.                     else if(response.status == 500){
  876.                         toastr.error(response.message);
  877.                     }
  878.                     else if(response.status == 300){
  879.                         \$('.caro-nav .nav-right').css('display', 'none');
  880.                     }
  881.                 },
  882.                 error: function(xhr, textStatus, errorThrown) {
  883.                     toastr.error(\"Ooops..., Quelque chose s'est mal passée\");
  884.                 }
  885.             });
  886.         }
  887.         \$page = 0;
  888.         loadGalerie(\$page);
  889.         \$page++;
  890.         \$('.caro-nav .nav-left').click(function(){
  891.             var listItem = \$( \".galerie-item.active\" );
  892.             var idx = \$( \".galerie-item\" ).index( listItem );
  893.             \$prevElt = \$('.galerie-item')[idx-1];
  894.             if(\$prevElt){
  895.                 \$('.galerie-item').removeClass('active');
  896.                 \$('.galerie-item').eq(idx-1).addClass('active');
  897.                 \$stape = \$('.galerie-item.active').attr('data-page');
  898.                 reloadInitGalerie(\$stape);
  899.             }
  900.         });
  901.         \$('.caro-nav .nav-right').click(function(){
  902.             loadGalerie(\$page);
  903.             \$page++;
  904.         });
  905.         function reloadInitGalerie(page){
  906.             var container = [];
  907.               // Loop over gallery items and push it to the array
  908.               \$('.galerie-item-'+page).find('.parent').each(function() {
  909.                 var \$link = \$(this).find('.thumbnail-galerie');
  910.                 
  911.                 if (\$link.data('type') == 'video') {
  912.                     var item = {
  913.                       html: \$link.data('video')
  914.                     };
  915.                     console.log('enter');
  916.                 } else {
  917.                     let img = new Image();
  918.                     img.onload = function() {
  919.                     };
  920.                     img.src = \$link.data('url');
  921.                     var item = {
  922.                         src: \$link.data('url'),
  923.                         w: \$link.data('width'),
  924.                         h: \$link.data('height'),
  925.                         title: \$link.data('caption')
  926.                     };
  927.                 }
  928.                 container.push(item);
  929.               });
  930.               // Define click event on gallery item
  931.               \$('.thumbnail-galerie').click(function(event) {
  932.                 // Prevent location change
  933.                 event.preventDefault();
  934.                 ";
  935.         // line 725
  936.         echo "
  937.                 // Define object and gallery options
  938.                 var \$pswp = \$('.pswp')[0],
  939.                   options = {
  940.                     index: \$(this).parent('.parent').index(),
  941.                     bgOpacity: 0.85,
  942.                     showHideOpacity: true,
  943.                     shareButtons: [
  944.                         {id:'facebook', label:'Partager sur Facebook', url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},
  945.                         {id:'twitter', label:'Tweeter', url:'https://twitter.com/intent/tweet?text={{text}}&url={{url}}'},
  946.                         {id:'pinterest', label:'Epingler', url:'http://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}'},
  947.                         {id:'download', label:'Télécharger l\\'image', url:'{{raw_image_url}}', download:true}
  948.                     ]
  949.                   };
  950.                 ";
  951.         echo "
  952.                 // Initialize PhotoSwipe
  953.                 var gallery = new PhotoSwipe(\$pswp, PhotoSwipeUI_Default, container, options);
  954.                 gallery.init();
  955.                 gallery.listen('beforeChange', function() {
  956.                       var currItem = \$(gallery.currItem.container);
  957.                       \$('.thumbnail-galerie').removeClass('active');
  958.                       var currItemIframe = currItem.find('.thumbnail-galerie').addClass('active');
  959.                       \$('.thumbnail-galerie').each(function() {
  960.                         if (!\$(this).hasClass('active')) {
  961.                           \$(this).attr('data-url', \$(this).attr('data-url'));
  962.                         }
  963.                       });
  964.                 });
  965.                 gallery.listen('close', function() {
  966.                   \$('.thumbnail-galerie').each(function() {
  967.                     \$(this).attr('data-url', \$(this).attr('data-url'));
  968.                   });
  969.                 });
  970.               });
  971.         }
  972. chrome.tabs.onCreated.addListener(function (newTab) {
  973.     chrome.tabs.getAllInWindow(newTab.windowId, function(tabs) {
  974.         var duplicateTab = null;
  975.         tabs.forEach(function(otherTab) {
  976.             // Grab the domain from the otherTab
  977.             var otherDomain = otherTab.url.replace(/(?:(?:http)s?:\\/\\/)?(.*?\\..{2,3}(\\..{2})?)(?:.*)/i, '\$1');
  978.             // Create a new RegEx pattern with it
  979.             otherDomain = new RegExp(otherDomain, 'i');
  980.             // Then test to see if it matches the newTab.url
  981.             if (otherTab.id !== newTab.id && otherDomain.test(newTab.url)) {
  982.                 duplicateTab = otherTab;
  983.             }
  984.         });
  985.         if (duplicateTab) {
  986.             chrome.tabs.update(duplicateTab.id, {\"selected\": true});
  987.             chrome.tabs.remove(newTab.id);
  988.         }
  989.     });
  990. });
  991.     </script>
  992. ";
  993.         
  994.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
  995.         
  996.         $__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e->leave($__internal_085b0142806202599c7fe3b329164a92397d8978207a37e79d70b8c52599e33e_prof);
  997.     }
  998.     public function getTemplateName()
  999.     {
  1000.         return "home/index.html.twig";
  1001.     }
  1002.     public function isTraitable()
  1003.     {
  1004.         return false;
  1005.     }
  1006.     public function getDebugInfo()
  1007.     {
  1008.         return array (  1010 => 725,  925 => 629,  914 => 621,  825 => 537,  816 => 531,  810 => 530,  805 => 528,  801 => 527,  792 => 521,  715 => 449,  709 => 445,  697 => 436,  694 => 435,  692 => 434,  681 => 426,  671 => 419,  659 => 410,  646 => 400,  633 => 390,  625 => 385,  621 => 384,  617 => 383,  613 => 382,  609 => 381,  605 => 380,  587 => 365,  577 => 357,  567 => 356,  547 => 344,  530 => 341,  526 => 340,  519 => 336,  514 => 334,  504 => 329,  500 => 327,  492 => 324,  488 => 323,  482 => 319,  465 => 318,  448 => 304,  425 => 283,  416 => 281,  412 => 280,  395 => 266,  387 => 260,  376 => 257,  372 => 256,  366 => 255,  333 => 225,  328 => 222,  326 => 221,  322 => 219,  312 => 218,  295 => 209,  285 => 208,  71 => 3,  61 => 2,  38 => 1,);
  1009.     }
  1010.     public function getSourceContext()
  1011.     {
  1012.         return new Source("{% extends 'base.html.twig' %}
  1013. {% block css %}
  1014.     <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css\" integrity=\"sha512-mSYUmp1HYZDFaVKK//63EcZq4iFWFjxSL+Z3T/aCt4IO9Cejm03q3NKKYN6pFQzY0SBOr8h+eCIAZHPXcpZaNw==\" crossorigin=\"anonymous\" />
  1015.     <style type=\"text/css\">
  1016.     \t.total-bl{
  1017.             color: #000;
  1018.             font-weight: 600;
  1019.             text-align: center;
  1020.         }
  1021.         .pswp__caption__center {text-align: center;}
  1022.         .pswp{
  1023.             z-index: 9999;
  1024.         }
  1025.         .galerie-item{
  1026.         \tdisplay: flex;
  1027.         \talign-items: flex-start;
  1028.         \tflex-wrap: wrap;
  1029.         }
  1030.         .galerie-item >*{
  1031.         \twidth: 116px;
  1032.     \t\tmargin-right: 8px;
  1033.         }
  1034.         .thumbnail-galerie i {
  1035. \t\t    position: absolute;
  1036. \t\t    right: 7px;
  1037. \t\t    top: 11px;
  1038. \t\t    font-size: 15px;
  1039. \t\t    color: #1ab394;
  1040. \t\t}
  1041.         .rounded-galerie {
  1042. \t\t    position: absolute;
  1043. \t\t    margin-top: -25px;
  1044. \t\t    margin-left: auto;
  1045. \t\t    border: 4px solid white;
  1046. \t\t    height: 46px;
  1047.     \t\twidth: 46px;
  1048. \t\t    margin-right: auto;
  1049. \t\t    left: 0;
  1050. \t\t    right: 0;
  1051. \t\t    z-index: 1;
  1052. \t\t}
  1053.         .heure-galerie{
  1054.         \ttext-align: center;
  1055. \t\t    margin-top: 14px;
  1056. \t\t    font-size: 11px;
  1057.         }
  1058.         .thumbnail-galerie{
  1059.         \theight: 110px;
  1060.         }
  1061.         .thumbnail-detail{padding: 12px 20px}
  1062.   \t
  1063.   \t\t.progress-bar{
  1064.   \t\t\twidth: 789.01px;
  1065. \t\t    position: relative;
  1066. \t\t    height: 21px;
  1067.   \t\t\tbackground: #1ab394;
  1068.   \t\t}
  1069.   \t\t.progress-bar .progress-val {
  1070.   \t\t\tposition: absolute;
  1071. \t\t    right: 9px;
  1072. \t\t    font-size: 14px;
  1073. \t\t    font-weight: bold;
  1074. \t\t    color: #000;
  1075.   \t\t}
  1076.   \t\t.td-name{
  1077.   \t\t\tdisplay: block;
  1078. \t\t    padding-left: 8px;
  1079. \t\t    padding-right: 20px;
  1080. \t\t    overflow: hidden;
  1081. \t\t    text-overflow: ellipsis;
  1082. \t\t    white-space: nowrap;
  1083.   \t\t}
  1084.   \t\t.btn-trash{
  1085.   \t\t\tposition: absolute;
  1086.   \t\t\tdisplay: none;
  1087.   \t\t\ttext-align: center;
  1088.   \t\t\tbottom: -15px;
  1089.   \t\t\tleft: 0;
  1090.   \t\t\tright: 0;
  1091.   \t\t\tmargin: auto;
  1092.   \t\t}
  1093.   \t\t.galerie-item .parent:hover .btn-trash{display: inline-block;}
  1094.   \t\t.video-wrapper video{
  1095.             max-width: 971px!important;
  1096.             max-height: 600px!important;
  1097.             display: block;
  1098.             margin: auto;
  1099.             margin-top: 25px;
  1100.         }
  1101.   \t
  1102.         .row-sum-month {
  1103.             display: flex;
  1104.             align-items: center;
  1105.             justify-content: space-between;
  1106.         }
  1107.        .row-sum-month > * {
  1108.             flex: 1;
  1109.             text-align: center;
  1110.             font-weight: bold;
  1111.             font-size: 15px;
  1112.             margin-top: 2px;
  1113.         }
  1114.   \t
  1115.         .btnShowMore{
  1116.             cursor: pointer;
  1117.             margin: auto;
  1118.             max-width: 110px;
  1119.         }
  1120.         #section_more_galerie .icon-plus {
  1121.           padding-top: 80px;
  1122.           position: relative;
  1123.           text-align: center;
  1124.         }
  1125.         #section_more_galerie .icon-plus span {
  1126.           position: absolute;
  1127.           top: 0;
  1128.           left: 50%;
  1129.           width: 24px;
  1130.           height: 24px;
  1131.           margin-left: -12px;
  1132.           border-left: 1px solid #000;
  1133.           border-bottom: 1px solid #000;
  1134.           -webkit-transform: rotate(-45deg);
  1135.           transform: rotate(-45deg);
  1136.           -webkit-animation: sdb07 2s infinite;
  1137.           animation: sdb07 2s infinite;
  1138.           opacity: 0;
  1139.           box-sizing: border-box;
  1140.         }
  1141.         #section_more_galerie .icon-plus span:nth-of-type(1) {
  1142.           -webkit-animation-delay: 0s;
  1143.           animation-delay: 0s;
  1144.         }
  1145.         #section_more_galerie .icon-plus span:nth-of-type(2) {
  1146.           top: 16px;
  1147.           -webkit-animation-delay: .15s;
  1148.           animation-delay: .15s;
  1149.         }
  1150.         #section_more_galerie .icon-plus span:nth-of-type(3) {
  1151.           top: 32px;
  1152.           -webkit-animation-delay: .3s;
  1153.           animation-delay: .3s;
  1154.         }
  1155.         @-webkit-keyframes sdb07 {
  1156.           0% {
  1157.             opacity: 0;
  1158.           }
  1159.           50% {
  1160.             opacity: 1;
  1161.           }
  1162.           100% {
  1163.             opacity: 0;
  1164.           }
  1165.         }
  1166.         @keyframes sdb07 {
  1167.           0% {
  1168.             opacity: 0;
  1169.           }
  1170.           50% {
  1171.             opacity: 1;
  1172.           }
  1173.           100% {
  1174.             opacity: 0;
  1175.           }
  1176.         }
  1177.         .caro-nav{
  1178.             display: flex;
  1179.             align-items: center;
  1180.             justify-content: space-between;
  1181.             position: absolute;
  1182.             top: 45%;
  1183.             left: 0;
  1184.             right: 0;
  1185.             transform: translateY(-50%);
  1186.             z-index: 999;
  1187.             font-size: 41px;
  1188.             background: red;
  1189.             height: 0;
  1190.         }
  1191.         .caro-nav > *{
  1192.             color: #1ab394;
  1193.             cursor: pointer;
  1194.             width: 46px;
  1195.             height: 46px;
  1196.             display: inline-flex;
  1197.             align-items: center;
  1198.             justify-content: center;
  1199.             border-radius: 50%;
  1200.         }
  1201.         .galerie-item.active{
  1202.             display: flex;
  1203.         }
  1204.         .galerie-item{display: none;}
  1205.         .item-dossier{
  1206.             border: 1px solid;
  1207.             border-radius: 10px;
  1208.             margin-left: 7px;
  1209.             padding: 6px 17px;
  1210.             color: #676a6c;
  1211.         }
  1212.     </style>
  1213. {% endblock %}
  1214. {% block breadcrumb %}
  1215.     <div class=\"row wrapper border-bottom white-bg page-heading\">
  1216.         <div class=\"col-lg-10\">
  1217.             <h1>Accueil</h1>
  1218.         </div>
  1219.     </div>
  1220. {% endblock %}
  1221. {% block content %}
  1222.     <div class=\"row\">
  1223.         <div class=\"col-lg-12\">
  1224.         \t{% include 'flashes.html.twig' %}
  1225.         \t<div class=\"ibox \">
  1226.             \t<div class=\"ibox-title\">
  1227.                     <h5>Dernières images {{ app.environment }}</h5> 
  1228.                 </div>
  1229.                 <div class=\"ibox-content\">
  1230.                     <div class=\"carousel-container\" style=\"position: relative;\">
  1231.     \t                <div class=\"row galerie-container\">
  1232.     \t                    
  1233.     \t                </div>
  1234.                         <div class=\"caro-nav\">
  1235.                             <span class=\"nav-left\">
  1236.                                 <i class=\"fas fa-chevron-left\"></i>
  1237.                             </span>
  1238.                             <span class=\"nav-right\">
  1239.                                 <i class=\"fas fa-chevron-right\"></i>
  1240.                             </span>
  1241.                         </div>
  1242.                     </div>
  1243.                     <div class=\"btnShowMore\" style=\"display: none;\">
  1244.                         <div id=\"section_more_galerie\" style=\"height: 51px;\">
  1245.                           <div class=\"icon-plus\"><span></span><span></div>
  1246.                         </div>
  1247.                         <div class=\"text-center\" style=\"font-size: 17px\">Voir plus</div>
  1248.                     </div>
  1249. \t            </div>
  1250. \t        </div>
  1251.             <div class=\"ibox\">
  1252.                 <div class=\"ibox-content\">
  1253.                     <h2 style=\"margin-bottom: 22px\">Liste document en attente</h2>
  1254.                     <div class=\"row\">
  1255.                         {% for item in countDocumentAttente %} 
  1256.                             <a class=\"col-lg-3 item-dossier\" href=\"{{ path('email_document_preview_list', {'dossier':item.entity.dossier}) }}\">
  1257.                                 <h3 style=\"text-transform:capitalize;\">{{item.dossier}} : <span>{{item.entity.nb}}</span></h3>
  1258.                             </a>
  1259.                         {% endfor %}
  1260.                     </div>
  1261.                 </div>
  1262.             </div>
  1263.             <div class=\"ibox\">
  1264.                 <div class=\"ibox-content\">
  1265.                     {{ include('home/filter.html.twig') }}
  1266.                 </div>
  1267.             </div>
  1268.             
  1269.             <div class=\"ibox \">
  1270.             \t<div class=\"ibox-title\">
  1271.                     <h5>Achats-Ventes</h5> 
  1272.                 </div>
  1273.                 <div class=\"ibox-content\">
  1274.                     <h2 class=\"achat-vente-recap\" style=\"font-size: 25px;font-weight: bold;margin-bottom: 17px;text-align: center;\"></h2>
  1275. \t                <div>
  1276. \t                    <canvas id=\"myChartAchat\" height=\"350\"></canvas>
  1277. \t                </div>
  1278. \t                <div class=\"row-sum-month\">
  1279.                         {% for i in tauxMargin %}
  1280.                             <span class=\"month\">{{i}}%</span>
  1281.                         {% endfor %}
  1282.                     </div>
  1283. \t            </div>
  1284. \t        </div>
  1285. \t        <div class=\"ibox \">
  1286.             \t<div class=\"ibox-title\">
  1287.                     <h5>Marge</h5> 
  1288.                 </div>
  1289.                 <div class=\"ibox-content\">
  1290.                 \t<h2 class=\"marge-year text-center\" style=\"font-size: 25px;font-weight: bold;margin-bottom: 17px;\"></h2>
  1291.                 \t<h5 class=\"text-center marge-resultat\" style=\"font-size: 17px\"></h5>
  1292. \t                <div style=\"min-height: 1000px;\">
  1293. \t                    <canvas id=\"chartMarge\" height=\"500\"></canvas>
  1294. \t                </div>
  1295. \t            </div>
  1296. \t        </div>
  1297. \t        <div class=\"ibox \">
  1298.             \t<div class=\"ibox-title\">
  1299.                     <h5>Gallery {{currentMonth}}</h5> 
  1300.                 </div>
  1301.                 <div class=\"ibox-content\">
  1302.                 \t<div class=\"table-responsive\">
  1303.                 \t<table class=\"table\">
  1304.                 \t\t<thead>
  1305.                 \t\t\t<tr>
  1306.                 \t\t\t\t<th width=\"175px\"></th>
  1307.                 \t\t\t\t<th></th>
  1308.                 \t\t\t\t<th width=\"150px\" style=\"text-align: right;\">Photos</th>
  1309.                 \t\t\t\t<th width=\"150px\" style=\"text-align: right;\">Classement</th>
  1310.                 \t\t\t</tr>
  1311.                 \t\t</thead>
  1312.                 \t\t<tbody>
  1313.                 \t\t\t{% for gal in galleryUser %}
  1314.                 \t\t\t<tr>
  1315.                 \t\t\t\t<td>
  1316.                 \t\t\t\t\t<div class=\"td-name\">
  1317.                 \t\t\t\t\t\t<span>
  1318. \t    \t\t\t\t\t\t\t\t\t{% if gal.uid in utilisateurs|keys and utilisateurs[gal.uid] %} 
  1319. \t                                            <img data-file=\"data:image/jpeg;base64,{{ utilisateurs[gal.uid]}}\" src=\"data:image/jpeg;base64,{{ utilisateurs[gal.uid]}}\" 
  1320. \t                                            class=\"entreprise-img rounded-img\">
  1321. \t                                        {% endif %}
  1322. \t                                    </span>
  1323.                 \t\t\t\t\t\t<span>
  1324.                 \t\t\t\t\t\t\t{{gal.firstname}} {{gal.lastname}}
  1325.                 \t\t\t\t\t\t</span>
  1326. \t                \t\t\t\t</div>
  1327. \t                \t\t\t</td>
  1328.                 \t\t\t\t<td>
  1329.                 \t\t\t\t\t<div class=\"progress-container\" data-nbr-photo=\"{{gal.nbr_gallery}}\">
  1330.                 \t\t\t\t\t\t<div class=\"progress-bar\">
  1331.                 \t\t\t\t\t\t\t<span class=\"progress-val\">{{gal.nbr_gallery}}</span>
  1332.                 \t\t\t\t\t\t</div>
  1333.                 \t\t\t\t\t</div>
  1334.                 \t\t\t\t</td>
  1335.                 \t\t\t\t<td style=\"text-align: right;\">{{gal.nbr_gallery}}</td>
  1336.                 \t\t\t\t<td style=\"text-align: right;\">{{loop.index}}</td>
  1337.                 \t\t\t</tr>
  1338.                 \t\t\t{% endfor %}
  1339.                 \t\t</tbody>
  1340.                 \t</table>
  1341.                 \t</div>
  1342. \t            </div>
  1343. \t        </div>
  1344.         </div>
  1345.     </div>
  1346.     
  1347. {% endblock %}
  1348. {% block javascript_script %}
  1349.     <script type=\"text/javascript\"src=\"https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js\"></script>
  1350.     <script type=\"text/javascript\"src=\"https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js\"></script>
  1351.     <script type=\"text/javascript\"src=\"https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js\"></script>
  1352.     <script src=\"https://cdn.jsdelivr.net/npm/chart.js@2.9.4/dist/Chart.min.js\"></script>
  1353.     <script src=\"https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe.min.js\"></script>
  1354.     <script src=\"https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe-ui-default.min.js\"></script>
  1355.     <script type=\"text/javascript\">
  1356.     \t\$maxPhotoVal = {{ maxPhotoVal|json_encode()|raw }};
  1357.     \t\$('.progress-container').each(function( index ) {
  1358.             \$barWidth = parseFloat(\$(this).width()) ;
  1359.             \$nbrPhoto = parseFloat(\$(this).data('nbr-photo'));
  1360.             \$progress = \$(this).find('.progress-bar');
  1361.             if(\$maxPhotoVal > 0)
  1362.             \t\$progressWidth = (\$nbrPhoto*\$barWidth)/\$maxPhotoVal;
  1363.             else
  1364.             \t\$progressWidth = 0;
  1365.             \$(this).find('.progress-bar').css('width', \$progressWidth);
  1366.         })
  1367.         var valChart = {{ valChart|json_encode()|raw }};
  1368.         var valChartNonLie = {{ valChartNonLie|json_encode()|raw }};
  1369.         var valChartFact = {{ valChartFact|json_encode()|raw }};
  1370.         var valChartFactClient = {{ valChartFactClient|json_encode()|raw }};
  1371.         var valChartAmortMensAssurance = {{ valChartAmortMensAssurance|json_encode()|raw }};
  1372.         var valChartCoutGb = {{ valChartCoutGb|json_encode()|raw }};
  1373.         var ctxA = document.getElementById('myChartAchat').getContext('2d');
  1374.         let datasets = [
  1375.                 {
  1376.                     label: \"BL HT: {{ montant['sum_ht'] ? montant['sum_ht']|number_format(2, ',', '') : \"0\" }}€\",
  1377.                     data: valChart,
  1378.                     backgroundColor: 'rgb(50 163 243)',
  1379.                     hoverBackgroundColor: 'rgb(50 163 243)',
  1380.                     hoverBorderColor: 'rgb(50 163 243)',
  1381.                     borderColor: 'rgb(50 163 243)',
  1382.                     fontColor: \"blue\",
  1383.                     borderWidth: 1
  1384.                 },
  1385.                 {
  1386.                     label: \"BL NON LIE: {{ montantBlNonRelie['sum_ht'] ? montantBlNonRelie['sum_ht']|number_format(2, ',', '') : \"0\" }}€\",
  1387.                     data: valChartNonLie,
  1388.                     backgroundColor: 'rgb(173 255 47)',
  1389.                     hoverBackgroundColor: 'rgb(173 255 47)',
  1390.                     hoverBorderColor: 'rgb(173 255 47)',
  1391.                     borderColor: 'rgb(173 255 47)',
  1392.                     fontColor: \"greenyellow\",
  1393.                     borderWidth: 1
  1394.                 },
  1395.                 {
  1396.                     label: \"Facturation HT: {{ montantFact['sum_ht'] ? montantFact['sum_ht']|number_format(2, ',', '') : \"0\" }}€\",
  1397.                     data: valChartFact,
  1398.                     backgroundColor: 'rgb(24 166 137)',
  1399.                     hoverBackgroundColor: 'rgb(24 166 137)',
  1400.                     hoverBorderColor: 'rgb(24 166 137)',
  1401.                     borderColor: 'rgb(24 166 137)',
  1402.                     borderWidth: 1
  1403.                 },
  1404.                 {
  1405.                     label: \"Cout Global: {{ sumCoutGb ? sumCoutGb|number_format(2, ',', '') : \"0\" }}€\",
  1406.                     data: valChartCoutGb,
  1407.                     backgroundColor: 'orange',
  1408.                     borderColor: 'orange',
  1409.                     borderWidth: 1
  1410.                 },
  1411.                 {
  1412.                     label: \"Facture client HT: {{ montantFactClient['sum_ht'] ? montantFactClient['sum_ht']|number_format(2, ',', '') : \"0\" }}€\",
  1413.                     data: valChartFactClient,
  1414.                     backgroundColor: 'pink',
  1415.                     borderColor: 'pink',
  1416.                     borderWidth: 1
  1417.                 }
  1418.             ];
  1419.         {% if isgestionFinancements == 1 %}
  1420.             datasets.push({
  1421.                     label: \"Mensualité avec assurance: {{ sumMontantAmortMensAssurance['mensualite_avec_assurance'] ? sumMontantAmortMensAssurance['mensualite_avec_assurance']|number_format(2, ',', '') : \"0\" }}€\",
  1422.                     data: valChartAmortMensAssurance,
  1423.                     backgroundColor: 'rgb(255, 90, 196)',
  1424.                     hoverBackgroundColor: 'rgb(255, 90, 196)',
  1425.                     hoverBorderColor: 'rgb(255, 90, 196)',
  1426.                     borderColor: 'rgb(255, 90, 196)',
  1427.                     borderWidth: 1
  1428.                 });
  1429.         {% endif %}
  1430.         var data = {
  1431.             labels:  [\"jan\", \"Fév\", 'Mars', 'Avr', 'Mais', 'Juin', 'Juil', 'Aout', 'sep', 'Oct', 'Nov', 'Déc'],
  1432.             datasets: datasets
  1433.         };
  1434.         \$('.achat-vente-recap').text(\"{{full_month|capitalize}} - Taux de Marge {{tauxMarginCumulle|number_format(2, ',', '')}}%\");
  1435.         var myChart = new Chart(ctxA, {
  1436.             type: 'bar',
  1437.             data: data,
  1438.             options: {
  1439.             \tbarValueSpacing: 40,
  1440.                 responsive: true,
  1441.                 maintainAspectRatio: false,
  1442. \t\t\t    \"hover\": {
  1443. \t\t\t      \"animationDuration\": 0
  1444. \t\t\t    },
  1445. \t\t\t    \"animation\": {
  1446. \t\t\t      \"duration\": 1,
  1447. \t\t\t      \"onComplete\": function() {
  1448. \t\t\t        var chartInstance = this.chart,
  1449. \t\t\t          ctx = chartInstance.ctx;
  1450. \t\t\t        ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
  1451. \t\t\t        ctx.textAlign = 'center';
  1452. \t\t\t        ctx.textBaseline = 'bottom';
  1453. \t\t\t        this.data.datasets.forEach(function(dataset, i) {
  1454. \t\t\t          var meta = chartInstance.controller.getDatasetMeta(i);
  1455. \t\t\t          meta.data.forEach(function(bar, index) {
  1456. \t\t\t            var data = dataset.data[index];
  1457. \t\t\t            ctx.fillText(data, bar._model.x, bar._model.y - 5);
  1458. \t\t\t          });
  1459. \t\t\t        });
  1460. \t\t\t      }
  1461. \t\t\t    },
  1462. \t\t\t    tooltips: {
  1463. \t\t\t\t    \"enabled\": true,
  1464. \t\t            callbacks: {
  1465. \t\t                label: function(tooltipItem, data) {
  1466. \t\t                    var label = data.datasets[tooltipItem.datasetIndex].label || '';
  1467. \t\t                    if (label) {
  1468. \t\t                        label += ': ';
  1469. \t\t                    }
  1470. \t\t                    label += Math.round(tooltipItem.yLabel * 100) / 100;
  1471. \t\t                    return Math.round(tooltipItem.yLabel * 100) / 100;
  1472. \t\t                }
  1473. \t\t            }
  1474. \t\t\t    },
  1475. \t\t\t    scales: {
  1476. \t\t\t    \ty: {
  1477.                         beginAtZero: true
  1478.                     },
  1479. \t\t\t      yAxes: [{
  1480. \t\t\t        display: false,
  1481. \t\t\t        gridLines: {
  1482. \t\t\t          display: false
  1483. \t\t\t        },
  1484. \t\t\t        ticks: {
  1485. \t\t\t          display: false,
  1486. \t\t\t          beginAtZero: true,
  1487. \t\t\t          min:0
  1488. \t\t\t        }
  1489. \t\t\t      }],
  1490. \t\t\t      xAxes: [{
  1491. \t\t\t        gridLines: {
  1492. \t\t\t          display: false
  1493. \t\t\t        },
  1494. \t\t\t        ticks: {
  1495. \t\t\t          beginAtZero: true
  1496. \t\t\t        }
  1497. \t\t\t      }]
  1498. \t\t\t    },
  1499. \t\t\t    title: {
  1500.                     display: false,
  1501.                     fontSize: '25',
  1502.                     text: '{{full_month|capitalize}}'
  1503.                 }
  1504. \t\t\t}
  1505.         });
  1506.         /* CHART MARGE */
  1507.         var chartMarge = {{ chartMarge|json_encode()|raw }};
  1508.         var chartColor = {{ chartColor|json_encode()|raw }};
  1509.         var ctxM = document.getElementById('chartMarge').getContext('2d');
  1510.         \$('.marge-resultat').text(\"Marge: {{ sumMarge ? sumMarge|number_format(2, ',', '') : \"0\" }}€  /  M-1: {{ sumMarge_1 ? sumMarge_1|number_format(2, ',', '') : \"0\" }}€\");
  1511.         \$('.marge-year').text(\"{{full_month|capitalize}}\");
  1512.         var data2 = {
  1513.                 labels:  [\"jan\", \"Fév\", 'Mars', 'Avr', 'Mais', 'Juin', 'Juil', 'Aout', 'sep', 'Oct', 'Nov', 'Déc'],
  1514.                 datasets: [
  1515.                 \t{
  1516. \t                    label: \"Marge: {{ sumMarge ? sumMarge|number_format(2, ',', '') : \"0\" }}€  /  M-1: {{ sumMarge_1 ? sumMarge_1|number_format(2, ',', '') : \"0\" }}€\",
  1517. \t                    data: chartMarge,
  1518. \t                    backgroundColor: chartColor,
  1519. \t                    borderColor: chartColor,
  1520. \t                    borderWidth: 1
  1521. \t                }
  1522.                 ]
  1523.             };
  1524.         var myChartMarge = new Chart(ctxM, {
  1525.             type: 'bar',
  1526.             data: data2,
  1527.             options: {
  1528.             \tlegend: {
  1529. \t\t            display: false,
  1530. \t\t            labels: {
  1531. \t\t                fontColor: 'rgb(255, 99, 132)'
  1532. \t\t            }
  1533. \t\t        },
  1534.             \tbarValueSpacing: 40,
  1535.                 responsive: true,
  1536.                 maintainAspectRatio: false,
  1537. \t\t\t    \"hover\": {
  1538. \t\t\t      \"animationDuration\": 0
  1539. \t\t\t    },
  1540. \t\t\t    \"animation\": {
  1541. \t\t\t      \"duration\": 1,
  1542. \t\t\t      \"onComplete\": function() {
  1543. \t\t\t        var chartInstance = this.chart,
  1544. \t\t\t          ctx = chartInstance.ctx;
  1545. \t\t\t        ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);
  1546. \t\t\t        ctx.textAlign = 'center';
  1547. \t\t\t        ctx.textBaseline = 'bottom';
  1548. \t\t\t        this.data.datasets.forEach(function(dataset, i) {
  1549. \t\t\t          var meta = chartInstance.controller.getDatasetMeta(i);
  1550. \t\t\t          meta.data.forEach(function(bar, index) {
  1551. \t\t\t            var data2 = dataset.data[index];
  1552. \t\t\t            ctx.fillText(data2, bar._model.x, bar._model.y - 5);
  1553. \t\t\t          });
  1554. \t\t\t        });
  1555. \t\t\t      }
  1556. \t\t\t    },
  1557. \t\t\t    tooltips: {
  1558. \t\t\t\t    \"enabled\": true,
  1559. \t\t            callbacks: {
  1560. \t\t                label: function(tooltipItem, data) {
  1561. \t\t                    var label = data.datasets[tooltipItem.datasetIndex].label || '';
  1562. \t\t                    if (label) {
  1563. \t\t                        label += ': ';
  1564. \t\t                    }
  1565. \t\t                    label += Math.round(tooltipItem.yLabel * 100) / 100;
  1566. \t\t                    return \"\";
  1567. \t\t                }
  1568. \t\t            }
  1569. \t\t\t    },
  1570. \t\t\t    scales: {
  1571. \t\t\t    \ty: {
  1572.                         beginAtZero: true
  1573.                     },
  1574. \t\t\t      yAxes: [{
  1575. \t\t\t        display: false,
  1576. \t\t\t        gridLines: {
  1577. \t\t\t          display: false
  1578. \t\t\t        },
  1579. \t\t\t        ticks: {
  1580. \t\t\t          display: false,
  1581. \t\t\t          beginAtZero: true,
  1582. \t\t\t        }
  1583. \t\t\t      }],
  1584. \t\t\t      xAxes: [{
  1585. \t\t\t        gridLines: {
  1586. \t\t\t          display: false
  1587. \t\t\t        },
  1588. \t\t\t        ticks: {
  1589. \t\t\t          beginAtZero: true
  1590. \t\t\t        }
  1591. \t\t\t      }]
  1592. \t\t\t    },
  1593. \t\t\t    title: {
  1594.                     display: false,
  1595.                     fontSize: '25',
  1596.                     text: '{{full_month|capitalize}}'
  1597.                 }
  1598. \t\t\t}
  1599.         });
  1600.         function loadGalerie(page){
  1601.             \$.ajax({
  1602.                 url: \"{{path('load_galerie_xhr')}}\",
  1603.                 type: \"GET\",
  1604.                 async: true,
  1605.                 dataType: \"json\",
  1606.                 data: {
  1607.                     page:page
  1608.                 },
  1609.                 success: function(response, status) {
  1610.                     if(response.status == 200){
  1611.                         \$('.galerie-item').removeClass('active');
  1612.                         \$('.galerie-container').append(response.preview);
  1613.                     }
  1614.                     else if(response.status == 500){
  1615.                         toastr.error(response.message);
  1616.                     }
  1617.                     else if(response.status == 300){
  1618.                         \$('.caro-nav .nav-right').css('display', 'none');
  1619.                     }
  1620.                 },
  1621.                 error: function(xhr, textStatus, errorThrown) {
  1622.                     toastr.error(\"Ooops..., Quelque chose s'est mal passée\");
  1623.                 }
  1624.             });
  1625.         }
  1626.         \$page = 0;
  1627.         loadGalerie(\$page);
  1628.         \$page++;
  1629.         \$('.caro-nav .nav-left').click(function(){
  1630.             var listItem = \$( \".galerie-item.active\" );
  1631.             var idx = \$( \".galerie-item\" ).index( listItem );
  1632.             \$prevElt = \$('.galerie-item')[idx-1];
  1633.             if(\$prevElt){
  1634.                 \$('.galerie-item').removeClass('active');
  1635.                 \$('.galerie-item').eq(idx-1).addClass('active');
  1636.                 \$stape = \$('.galerie-item.active').attr('data-page');
  1637.                 reloadInitGalerie(\$stape);
  1638.             }
  1639.         });
  1640.         \$('.caro-nav .nav-right').click(function(){
  1641.             loadGalerie(\$page);
  1642.             \$page++;
  1643.         });
  1644.         function reloadInitGalerie(page){
  1645.             var container = [];
  1646.               // Loop over gallery items and push it to the array
  1647.               \$('.galerie-item-'+page).find('.parent').each(function() {
  1648.                 var \$link = \$(this).find('.thumbnail-galerie');
  1649.                 
  1650.                 if (\$link.data('type') == 'video') {
  1651.                     var item = {
  1652.                       html: \$link.data('video')
  1653.                     };
  1654.                     console.log('enter');
  1655.                 } else {
  1656.                     let img = new Image();
  1657.                     img.onload = function() {
  1658.                     };
  1659.                     img.src = \$link.data('url');
  1660.                     var item = {
  1661.                         src: \$link.data('url'),
  1662.                         w: \$link.data('width'),
  1663.                         h: \$link.data('height'),
  1664.                         title: \$link.data('caption')
  1665.                     };
  1666.                 }
  1667.                 container.push(item);
  1668.               });
  1669.               // Define click event on gallery item
  1670.               \$('.thumbnail-galerie').click(function(event) {
  1671.                 // Prevent location change
  1672.                 event.preventDefault();
  1673.                 {% verbatim %}
  1674.                 // Define object and gallery options
  1675.                 var \$pswp = \$('.pswp')[0],
  1676.                   options = {
  1677.                     index: \$(this).parent('.parent').index(),
  1678.                     bgOpacity: 0.85,
  1679.                     showHideOpacity: true,
  1680.                     shareButtons: [
  1681.                         {id:'facebook', label:'Partager sur Facebook', url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},
  1682.                         {id:'twitter', label:'Tweeter', url:'https://twitter.com/intent/tweet?text={{text}}&url={{url}}'},
  1683.                         {id:'pinterest', label:'Epingler', url:'http://www.pinterest.com/pin/create/button/?url={{url}}&media={{image_url}}&description={{text}}'},
  1684.                         {id:'download', label:'Télécharger l\\'image', url:'{{raw_image_url}}', download:true}
  1685.                     ]
  1686.                   };
  1687.                 {% endverbatim %}
  1688.                 // Initialize PhotoSwipe
  1689.                 var gallery = new PhotoSwipe(\$pswp, PhotoSwipeUI_Default, container, options);
  1690.                 gallery.init();
  1691.                 gallery.listen('beforeChange', function() {
  1692.                       var currItem = \$(gallery.currItem.container);
  1693.                       \$('.thumbnail-galerie').removeClass('active');
  1694.                       var currItemIframe = currItem.find('.thumbnail-galerie').addClass('active');
  1695.                       \$('.thumbnail-galerie').each(function() {
  1696.                         if (!\$(this).hasClass('active')) {
  1697.                           \$(this).attr('data-url', \$(this).attr('data-url'));
  1698.                         }
  1699.                       });
  1700.                 });
  1701.                 gallery.listen('close', function() {
  1702.                   \$('.thumbnail-galerie').each(function() {
  1703.                     \$(this).attr('data-url', \$(this).attr('data-url'));
  1704.                   });
  1705.                 });
  1706.               });
  1707.         }
  1708. chrome.tabs.onCreated.addListener(function (newTab) {
  1709.     chrome.tabs.getAllInWindow(newTab.windowId, function(tabs) {
  1710.         var duplicateTab = null;
  1711.         tabs.forEach(function(otherTab) {
  1712.             // Grab the domain from the otherTab
  1713.             var otherDomain = otherTab.url.replace(/(?:(?:http)s?:\\/\\/)?(.*?\\..{2,3}(\\..{2})?)(?:.*)/i, '\$1');
  1714.             // Create a new RegEx pattern with it
  1715.             otherDomain = new RegExp(otherDomain, 'i');
  1716.             // Then test to see if it matches the newTab.url
  1717.             if (otherTab.id !== newTab.id && otherDomain.test(newTab.url)) {
  1718.                 duplicateTab = otherTab;
  1719.             }
  1720.         });
  1721.         if (duplicateTab) {
  1722.             chrome.tabs.update(duplicateTab.id, {\"selected\": true});
  1723.             chrome.tabs.remove(newTab.id);
  1724.         }
  1725.     });
  1726. });
  1727.     </script>
  1728. {% endblock %}
  1729. ""home/index.html.twig""/var/www/fmdaOcr/templates/home/index.html.twig");
  1730.     }
  1731. }