var/cache/dev/twig/71/71386eb9aff00326b7800e791c300b5d.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\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. /* admin/person/persons_balance.html.twig */
  15. class __TwigTemplate_b252e464afc0018b926a09788f5dc161 extends Template
  16. {
  17.     private $source;
  18.     private $macros = [];
  19.     public function __construct(Environment $env)
  20.     {
  21.         parent::__construct($env);
  22.         $this->source $this->getSourceContext();
  23.         $this->blocks = [
  24.             'title' => [$this'block_title'],
  25.             'content' => [$this'block_content'],
  26.             'addJs' => [$this'block_addJs'],
  27.         ];
  28.     }
  29.     protected function doGetParent(array $context)
  30.     {
  31.         // line 1
  32.         return "admin/base.html.twig";
  33.     }
  34.     protected function doDisplay(array $context, array $blocks = [])
  35.     {
  36.         $macros $this->macros;
  37.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  38.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""admin/person/persons_balance.html.twig"));
  39.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  40.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""admin/person/persons_balance.html.twig"));
  41.         $this->parent $this->loadTemplate("admin/base.html.twig""admin/person/persons_balance.html.twig"1);
  42.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  43.         
  44.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  45.         
  46.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  47.     }
  48.     // line 3
  49.     public function block_title($context, array $blocks = [])
  50.     {
  51.         $macros $this->macros;
  52.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  53.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  54.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  55.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  56.         yield "Баланс средств";
  57.         
  58.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  59.         
  60.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  61.         return; yield '';
  62.     }
  63.     // line 5
  64.     public function block_content($context, array $blocks = [])
  65.     {
  66.         $macros $this->macros;
  67.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  68.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  69.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  70.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""content"));
  71.         // line 6
  72.         yield "    <h1 class=\"h3 mb-2 text-gray-800\">Баланс средств</h1>
  73.     <div class=\"card shadow mb-4 mt-4\">
  74.         <div class=\"card-header py-3\">
  75.             <h6 class=\"m-0 font-weight-bold text-primary\">Баланс средств</h6>
  76.         </div>
  77.         <div class=\"card-body\">
  78.             <div id=\"persons-balance-table-filters\" class=\"mb-4 d-flex align-items-center\" style=\"gap: 20px; flex-wrap: wrap;\">
  79.                 ";
  80.         // line 14
  81.         yield from         $this->loadTemplate("components/table_filter.html.twig""admin/person/persons_balance.html.twig"14)->unwrap()->yield(CoreExtension::merge($context, ["options" => ["labelText" => "Уровень учащегося""dropdownIdPrefix" => "level""allItemsButtonText" => "Все уровни"]]));
  82.         // line 19
  83.         yield "
  84.                 ";
  85.         // line 20
  86.         yield from         $this->loadTemplate("components/table_filter.html.twig""admin/person/persons_balance.html.twig"20)->unwrap()->yield(CoreExtension::merge($context, ["options" => ["labelText" => "Статус учащегося""dropdownIdPrefix" => "status""allItemsButtonText" => "Все статусы"]]));
  87.         // line 25
  88.         yield "            </div>
  89.             <div class=\"table-responsive\">
  90.                 ";
  91.         // line 28
  92.         $context["financeCategories"] = CoreExtension::getAttribute($this->env$this->source, (isset($context["financeCategoryService"]) || array_key_exists("financeCategoryService"$context) ? $context["financeCategoryService"] : (function () { throw new RuntimeError('Variable "financeCategoryService" does not exist.'28$this->source); })()), "getAllWithIdKeys", [], "method"falsefalsefalse28);
  93.         // line 29
  94.         yield "                ";
  95.         $context["hasWithoutFinanceCategory"] = false;
  96.         // line 30
  97.         yield "                ";
  98.         $context['_parent'] = $context;
  99.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["persons"]) || array_key_exists("persons"$context) ? $context["persons"] : (function () { throw new RuntimeError('Variable "persons" does not exist.'30$this->source); })()));
  100.         foreach ($context['_seq'] as $context["_key"] => $context["item"]) {
  101.             // line 31
  102.             yield "                    ";
  103.             if (CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["item"], "balance", [], "any"falsetruefalse31),  -1, [], "array"truetruefalse31)) {
  104.                 // line 32
  105.                 yield "                        ";
  106.                 $context["hasWithoutFinanceCategory"] = true;
  107.                 // line 33
  108.                 yield "                    ";
  109.             }
  110.             // line 34
  111.             yield "                ";
  112.         }
  113.         $_parent $context['_parent'];
  114.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['item'], $context['_parent'], $context['loop']);
  115.         $context array_intersect_key($context$_parent) + $_parent;
  116.         // line 35
  117.         yield "
  118.                 <table class=\"table table-bordered\" id=\"persons-balance-table\">
  119.                     <thead>
  120.                     <tr>
  121.                         <th data-table-type=\"num\">Номер п/п</th>
  122.                         <th>Имя</th>
  123.                         <th data-table-dropdown-id=\"levelDropdown\"
  124.                             data-table-badge-id=\"levelBadge\"
  125.                             data-table-dropdown-text-for-all=\"Все уровни\">Уровень учащегося</th>
  126.                         <th data-export-exclude-col>Статус учащегося</th>
  127.                         <th data-table-hide-col
  128.                             data-table-dropdown-id=\"statusDropdown\"
  129.                             data-table-badge-id=\"statusBadge\"
  130.                             data-table-dropdown-text-for-all=\"Все статусы\">Статус учащегося (текст)</th>
  131.                         ";
  132.         // line 49
  133.         $context['_parent'] = $context;
  134.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["financeCategories"]) || array_key_exists("financeCategories"$context) ? $context["financeCategories"] : (function () { throw new RuntimeError('Variable "financeCategories" does not exist.'49$this->source); })()));
  135.         foreach ($context['_seq'] as $context["id"] => $context["fc"]) {
  136.             // line 50
  137.             yield "                            <th data-table-type=\"num\">";
  138.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["fc"], "name", [], "any"falsefalsefalse50), "html"nulltrue);
  139.             yield "</th>
  140.                         ";
  141.         }
  142.         $_parent $context['_parent'];
  143.         unset($context['_seq'], $context['_iterated'], $context['id'], $context['fc'], $context['_parent'], $context['loop']);
  144.         $context array_intersect_key($context$_parent) + $_parent;
  145.         // line 52
  146.         yield "                        ";
  147.         if ((isset($context["hasWithoutFinanceCategory"]) || array_key_exists("hasWithoutFinanceCategory"$context) ? $context["hasWithoutFinanceCategory"] : (function () { throw new RuntimeError('Variable "hasWithoutFinanceCategory" does not exist.'52$this->source); })())) {
  148.             // line 53
  149.             yield "                            <th data-table-type=\"num\">Без статьи финансов</th>
  150.                         ";
  151.         }
  152.         // line 55
  153.         yield "                    </tr>
  154.                     </thead>
  155.                     <tbody>
  156.                     ";
  157.         // line 58
  158.         $context['_parent'] = $context;
  159.         $context['_seq'] = CoreExtension::ensureTraversable((isset($context["persons"]) || array_key_exists("persons"$context) ? $context["persons"] : (function () { throw new RuntimeError('Variable "persons" does not exist.'58$this->source); })()));
  160.         $context['loop'] = [
  161.           'parent' => $context['_parent'],
  162.           'index0' => 0,
  163.           'index'  => 1,
  164.           'first'  => true,
  165.         ];
  166.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  167.             $length count($context['_seq']);
  168.             $context['loop']['revindex0'] = $length 1;
  169.             $context['loop']['revindex'] = $length;
  170.             $context['loop']['length'] = $length;
  171.             $context['loop']['last'] = === $length;
  172.         }
  173.         foreach ($context['_seq'] as $context["_key"] => $context["item"]) {
  174.             // line 59
  175.             yield "                        ";
  176.             $context["student"] = CoreExtension::getAttribute($this->env$this->source$context["item"], "student", [], "any"falsefalsefalse59);
  177.             // line 60
  178.             yield "                        <tr>
  179.                             <td>";
  180.             // line 61
  181.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["loop"], "index", [], "any"falsefalsefalse61), "html"nulltrue);
  182.             yield "</td>
  183.                             <td>";
  184.             // line 62
  185.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['App\Twig\AppExtension']->getFirstLastNameWithOld($context["item"], falsetrue), "html"nulltrue);
  186.             yield "</td>
  187.                             <td>";
  188.             // line 63
  189.             (((isset($context["student"]) || array_key_exists("student"$context) ? $context["student"] : (function () { throw new RuntimeError('Variable "student" does not exist.'63$this->source); })())) ? (yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source, (isset($context["student"]) || array_key_exists("student"$context) ? $context["student"] : (function () { throw new RuntimeError('Variable "student" does not exist.'63$this->source); })()), "level", [], "any"falsefalsefalse63), "html"nulltrue)) : (yield "–"));
  190.             yield "</td>
  191.                             <td>
  192.                                 <span class=\"btn btn-";
  193.             // line 65
  194.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["item"], "virtualStudentStatusCssClass", [], "any"falsefalsefalse65), "html"nulltrue);
  195.             yield " btn-icon-split w-max cursor-default\">
  196.                                     <span class=\"icon text-white-50\"><i class=\"fas fa-tag\"></i></span>
  197.                                     <span class=\"text\">";
  198.             // line 67
  199.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["item"], "virtualStudentStatusText", [], "any"falsefalsefalse67), "html"nulltrue);
  200.             yield "</span>
  201.                                 </span>
  202.                             </td>
  203.                             <td>";
  204.             // line 70
  205.             yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->source$context["item"], "virtualStudentStatusText", [], "any"falsefalsefalse70), "html"nulltrue);
  206.             yield "</td>
  207.                             ";
  208.             // line 71
  209.             $context['_parent'] = $context;
  210.             $context['_seq'] = CoreExtension::ensureTraversable((isset($context["financeCategories"]) || array_key_exists("financeCategories"$context) ? $context["financeCategories"] : (function () { throw new RuntimeError('Variable "financeCategories" does not exist.'71$this->source); })()));
  211.             foreach ($context['_seq'] as $context["fcId"] => $context["fc"]) {
  212.                 // line 72
  213.                 yield "                                <td>";
  214.                 yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(((CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["item"], "balance", [], "any"falsetruefalse72), $context["fcId"], [], "array"truetruefalse72)) ? (Twig\Extension\CoreExtension::default(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["item"], "balance", [], "any"falsetruefalse72), $context["fcId"], [], "array"falsefalsefalse72), 0)) : (0)), "html"nulltrue);
  215.                 yield "</td>
  216.                             ";
  217.             }
  218.             $_parent $context['_parent'];
  219.             unset($context['_seq'], $context['_iterated'], $context['fcId'], $context['fc'], $context['_parent'], $context['loop']);
  220.             $context array_intersect_key($context$_parent) + $_parent;
  221.             // line 74
  222.             yield "                            ";
  223.             if ((isset($context["hasWithoutFinanceCategory"]) || array_key_exists("hasWithoutFinanceCategory"$context) ? $context["hasWithoutFinanceCategory"] : (function () { throw new RuntimeError('Variable "hasWithoutFinanceCategory" does not exist.'74$this->source); })())) {
  224.                 // line 75
  225.                 yield "                                ";
  226.                 if (CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["item"], "balance", [], "any"falsetruefalse75),  -1, [], "array"truetruefalse75)) {
  227.                     // line 76
  228.                     yield "                                    <td>";
  229.                     yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape(CoreExtension::getAttribute($this->env$this->sourceCoreExtension::getAttribute($this->env$this->source$context["item"], "balance", [], "any"falsefalsefalse76),  -1, [], "array"falsefalsefalse76), "html"nulltrue);
  230.                     yield "</td>
  231.                                 ";
  232.                 } else {
  233.                     // line 78
  234.                     yield "                                    <td>0</td>
  235.                                 ";
  236.                 }
  237.                 // line 80
  238.                 yield "                            ";
  239.             }
  240.             // line 81
  241.             yield "                        </tr>
  242.                     ";
  243.             ++$context['loop']['index0'];
  244.             ++$context['loop']['index'];
  245.             $context['loop']['first'] = false;
  246.             if (isset($context['loop']['length'])) {
  247.                 --$context['loop']['revindex0'];
  248.                 --$context['loop']['revindex'];
  249.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  250.             }
  251.         }
  252.         $_parent $context['_parent'];
  253.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['item'], $context['_parent'], $context['loop']);
  254.         $context array_intersect_key($context$_parent) + $_parent;
  255.         // line 83
  256.         yield "                    </tbody>
  257.                 </table>
  258.             </div>
  259.         </div>
  260.     </div>
  261. ";
  262.         
  263.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  264.         
  265.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  266.         return; yield '';
  267.     }
  268.     // line 90
  269.     public function block_addJs($context, array $blocks = [])
  270.     {
  271.         $macros $this->macros;
  272.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  273.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""addJs"));
  274.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  275.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""addJs"));
  276.         // line 91
  277.         yield "    <script>
  278.         let table = new CustomDataTable('#persons-balance-table', {
  279.             drawRowNumbersForColIndex: 0,
  280.         });
  281.         table.initDataTable();
  282.     </script>
  283. ";
  284.         
  285.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  286.         
  287.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  288.         return; yield '';
  289.     }
  290.     /**
  291.      * @codeCoverageIgnore
  292.      */
  293.     public function getTemplateName()
  294.     {
  295.         return "admin/person/persons_balance.html.twig";
  296.     }
  297.     /**
  298.      * @codeCoverageIgnore
  299.      */
  300.     public function isTraitable()
  301.     {
  302.         return false;
  303.     }
  304.     /**
  305.      * @codeCoverageIgnore
  306.      */
  307.     public function getDebugInfo()
  308.     {
  309.         return array (  303 => 91,  293 => 90,  277 => 83,  262 => 81,  259 => 80,  255 => 78,  249 => 76,  246 => 75,  243 => 74,  234 => 72,  230 => 71,  226 => 70,  220 => 67,  215 => 65,  210 => 63,  206 => 62,  202 => 61,  199 => 60,  196 => 59,  179 => 58,  174 => 55,  170 => 53,  167 => 52,  158 => 50,  154 => 49,  138 => 35,  132 => 34,  129 => 33,  126 => 32,  123 => 31,  118 => 30,  115 => 29,  113 => 28,  108 => 25,  106 => 20,  103 => 19,  101 => 14,  91 => 6,  81 => 5,  61 => 3,  38 => 1,);
  310.     }
  311.     public function getSourceContext()
  312.     {
  313.         return new Source("{% extends 'admin/base.html.twig' %}
  314. {% block title %}Баланс средств{% endblock %}
  315. {% block content %}
  316.     <h1 class=\"h3 mb-2 text-gray-800\">Баланс средств</h1>
  317.     <div class=\"card shadow mb-4 mt-4\">
  318.         <div class=\"card-header py-3\">
  319.             <h6 class=\"m-0 font-weight-bold text-primary\">Баланс средств</h6>
  320.         </div>
  321.         <div class=\"card-body\">
  322.             <div id=\"persons-balance-table-filters\" class=\"mb-4 d-flex align-items-center\" style=\"gap: 20px; flex-wrap: wrap;\">
  323.                 {% include 'components/table_filter.html.twig' with { options: {
  324.                     labelText: 'Уровень учащегося',
  325.                     dropdownIdPrefix: 'level',
  326.                     allItemsButtonText: 'Все уровни',
  327.                 }} %}
  328.                 {% include 'components/table_filter.html.twig' with { options: {
  329.                     labelText: 'Статус учащегося',
  330.                     dropdownIdPrefix: 'status',
  331.                     allItemsButtonText: 'Все статусы',
  332.                 }} %}
  333.             </div>
  334.             <div class=\"table-responsive\">
  335.                 {% set financeCategories = financeCategoryService.getAllWithIdKeys() %}
  336.                 {% set hasWithoutFinanceCategory = false %}
  337.                 {% for item in persons %}
  338.                     {% if item.balance[-1] is defined %}
  339.                         {% set hasWithoutFinanceCategory = true %}
  340.                     {% endif %}
  341.                 {% endfor %}
  342.                 <table class=\"table table-bordered\" id=\"persons-balance-table\">
  343.                     <thead>
  344.                     <tr>
  345.                         <th data-table-type=\"num\">Номер п/п</th>
  346.                         <th>Имя</th>
  347.                         <th data-table-dropdown-id=\"levelDropdown\"
  348.                             data-table-badge-id=\"levelBadge\"
  349.                             data-table-dropdown-text-for-all=\"Все уровни\">Уровень учащегося</th>
  350.                         <th data-export-exclude-col>Статус учащегося</th>
  351.                         <th data-table-hide-col
  352.                             data-table-dropdown-id=\"statusDropdown\"
  353.                             data-table-badge-id=\"statusBadge\"
  354.                             data-table-dropdown-text-for-all=\"Все статусы\">Статус учащегося (текст)</th>
  355.                         {% for id, fc in financeCategories %}
  356.                             <th data-table-type=\"num\">{{ fc.name }}</th>
  357.                         {% endfor %}
  358.                         {% if hasWithoutFinanceCategory %}
  359.                             <th data-table-type=\"num\">Без статьи финансов</th>
  360.                         {% endif %}
  361.                     </tr>
  362.                     </thead>
  363.                     <tbody>
  364.                     {% for item in persons %}
  365.                         {% set student = item.student %}
  366.                         <tr>
  367.                             <td>{{ loop.index }}</td>
  368.                             <td>{{ getFirstLastNameWithOld(item, false, true) }}</td>
  369.                             <td>{{ student ? student.level : '–' }}</td>
  370.                             <td>
  371.                                 <span class=\"btn btn-{{ item.virtualStudentStatusCssClass }} btn-icon-split w-max cursor-default\">
  372.                                     <span class=\"icon text-white-50\"><i class=\"fas fa-tag\"></i></span>
  373.                                     <span class=\"text\">{{ item.virtualStudentStatusText }}</span>
  374.                                 </span>
  375.                             </td>
  376.                             <td>{{ item.virtualStudentStatusText }}</td>
  377.                             {% for fcId, fc in financeCategories %}
  378.                                 <td>{{ item.balance[fcId]|default(0) }}</td>
  379.                             {% endfor %}
  380.                             {% if hasWithoutFinanceCategory %}
  381.                                 {% if item.balance[-1] is defined %}
  382.                                     <td>{{ item.balance[-1] }}</td>
  383.                                 {% else %}
  384.                                     <td>0</td>
  385.                                 {% endif %}
  386.                             {% endif %}
  387.                         </tr>
  388.                     {% endfor %}
  389.                     </tbody>
  390.                 </table>
  391.             </div>
  392.         </div>
  393.     </div>
  394. {% endblock %}
  395. {% block addJs %}
  396.     <script>
  397.         let table = new CustomDataTable('#persons-balance-table', {
  398.             drawRowNumbersForColIndex: 0,
  399.         });
  400.         table.initDataTable();
  401.     </script>
  402. {% endblock %}
  403. ""admin/person/persons_balance.html.twig""/home/sariato/www/dev.centr.sariato.ru/templates/admin/person/persons_balance.html.twig");
  404.     }
  405. }