budget synthèse

This commit is contained in:
2021-06-17 14:06:08 +02:00
parent e1f48d462a
commit 4654b7b7d4
3 changed files with 129 additions and 15 deletions

View File

@@ -117,9 +117,11 @@ class BudgetController extends AbstractController
->andWhere('event.task=task') ->andWhere('event.task=task')
->andWhere('event.start >=:start') ->andWhere('event.start >=:start')
->andWhere('event.end <=:end') ->andWhere('event.end <=:end')
->andWhere('event.validate=:validate')
->setParameter('domaine',$domaine) ->setParameter('domaine',$domaine)
->setParameter('start',$startn1) ->setParameter('start',$startn1)
->setParameter('end',$endn1) ->setParameter('end',$endn1)
->setParameter('validate',true)
->getQuery()->getResult(); ->getQuery()->getResult();
$tbdomaines[$domaine->getId()]["nbdayrealn1"]=($events[0]["somme"]?$events[0]["somme"]:0); $tbdomaines[$domaine->getId()]["nbdayrealn1"]=($events[0]["somme"]?$events[0]["somme"]:0);
$tbdomaines[$domaine->getId()]["nbetprealn1"]=$tbdomaines[$domaine->getId()]["nbdayrealn1"]/$n1->getNbday(); $tbdomaines[$domaine->getId()]["nbetprealn1"]=$tbdomaines[$domaine->getId()]["nbdayrealn1"]/$n1->getNbday();
@@ -148,9 +150,11 @@ class BudgetController extends AbstractController
->andWhere('event.task=task') ->andWhere('event.task=task')
->andWhere('event.start >=:start') ->andWhere('event.start >=:start')
->andWhere('event.end <=:end') ->andWhere('event.end <=:end')
->andWhere('event.validate=:validate')
->setParameter('domaine',$domaine) ->setParameter('domaine',$domaine)
->setParameter('start',$startn2) ->setParameter('start',$startn2)
->setParameter('end',$endn2) ->setParameter('end',$endn2)
->setParameter('validate',true)
->getQuery()->getResult(); ->getQuery()->getResult();
$tbdomaines[$domaine->getId()]["nbdayrealn2"]=($events[0]["somme"]?$events[0]["somme"]:0); $tbdomaines[$domaine->getId()]["nbdayrealn2"]=($events[0]["somme"]?$events[0]["somme"]:0);
$tbdomaines[$domaine->getId()]["nbetprealn2"]=$tbdomaines[$domaine->getId()]["nbdayrealn2"]/$n2->getNbday(); $tbdomaines[$domaine->getId()]["nbetprealn2"]=$tbdomaines[$domaine->getId()]["nbdayrealn2"]/$n2->getNbday();
@@ -198,9 +202,11 @@ class BudgetController extends AbstractController
->andWhere('event.task=task') ->andWhere('event.task=task')
->andWhere('event.start >=:start') ->andWhere('event.start >=:start')
->andWhere('event.end <=:end') ->andWhere('event.end <=:end')
->andWhere('event.validate=:validate')
->setParameter('project',$project) ->setParameter('project',$project)
->setParameter('start',$startn1) ->setParameter('start',$startn1)
->setParameter('end',$endn1) ->setParameter('end',$endn1)
->setParameter('validate',true)
->getQuery()->getResult(); ->getQuery()->getResult();
$nbdayrealn1=($events[0]["somme"]?$events[0]["somme"]:0); $nbdayrealn1=($events[0]["somme"]?$events[0]["somme"]:0);
$tbdomaines[$domaine->getId()]["projects"][$project->getId()]["nbdayrealn1"]=$nbdayrealn1; $tbdomaines[$domaine->getId()]["projects"][$project->getId()]["nbdayrealn1"]=$nbdayrealn1;
@@ -230,9 +236,11 @@ class BudgetController extends AbstractController
->andWhere('event.task=task') ->andWhere('event.task=task')
->andWhere('event.start >=:start') ->andWhere('event.start >=:start')
->andWhere('event.end <=:end') ->andWhere('event.end <=:end')
->andWhere('event.validate=:validate')
->setParameter('project',$project) ->setParameter('project',$project)
->setParameter('start',$startn2) ->setParameter('start',$startn2)
->setParameter('end',$endn2) ->setParameter('end',$endn2)
->setParameter('validate',true)
->getQuery()->getResult(); ->getQuery()->getResult();
$nbdayrealn2=($events[0]["somme"]?$events[0]["somme"]:0); $nbdayrealn2=($events[0]["somme"]?$events[0]["somme"]:0);
$tbdomaines[$domaine->getId()]["projects"][$project->getId()]["nbdayrealn2"]=$nbdayrealn2; $tbdomaines[$domaine->getId()]["projects"][$project->getId()]["nbdayrealn2"]=$nbdayrealn2;

View File

@@ -35,7 +35,7 @@ class DomaineType extends AbstractType
$builder->add('category', $builder->add('category',
ChoiceType::class, [ ChoiceType::class, [
'label' => "Catégorie", 'label' => "Catégorie",
'choices' => array("Administratif" => "Administratif","Opérationnel" => "Opérationnel","Interne" => "Interne") 'choices' => array("Frais"=>"Frais","Administratif" => "Administratif","Opérationnel" => "Opérationnel","Interne" => "Interne")
] ]
); );

View File

@@ -10,7 +10,7 @@
} }
tr { page-break-inside: avoid; } tr { page-break-inside: avoid; }
{%endif%} {%endif%}
.group td{ .group td, .tbsynthese .tdtotalgene {
font-size:120%; font-size:120%;
text-transform: uppercase; text-transform: uppercase;
background-color:#212529; background-color:#212529;
@@ -23,6 +23,10 @@
font-weight: bold; font-weight: bold;
} }
.tbsynthese .tbhide {display:none}
{% endblock %} {% endblock %}
{% block body %} {% block body %}
@@ -44,26 +48,70 @@ BUDGET
</select> </select>
</div> </div>
<div class="card mb-3">
<div class="card-header">
<i class="fa fa-table fa-fw"></i> Budget Synthèse
</div>
<div class="card-body">
<div class="dataTable_wrapper">
<table class="table table-bordered tbsynthese" id="dataTables" style="width:100%; zoom:70%">
<thead>
<tr>
<th rowspan=2>Domaine</th>
<th rowspan=2 class="tbhide">Projet</th>
<th class="text-center" style="width:150px" colspan=2>{{n1.start|date("m/Y")}}</th>
<th class="text-center" style="width:150px" colspan=2>{{n2.start|date("m/Y")}}</th>
</tr>
<tr>
<th width="20px" class="no-sort no-print tbhide"></th>
<th class="text-center" style="width:150px">Réel</th>
<th class="text-center" style="width:150px">Budget</th>
<th width="20px" class="no-sort no-print tbhide"></th>
<th class="text-center" style="width:150px">Réel</th>
<th class="text-center" style="width:150px">Budget</th>
</tr>
</thead>
<tbody id="tbsynthesebody">
<tbody>
</table>
</div>
</div>
</div>
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<i class="fa fa-table fa-fw"></i> Budget <i class="fa fa-table fa-fw"></i> Budget
</div> </div>
{% set totdayrealn1 = 0 %}
{% set totetprealn1 = 0 %}
{% set totcaarealn1 = 0 %}
{% set totdaybudgn1 = 0 %}
{% set totetpbudgn1 = 0 %}
{% set totcaabudgn1 = 0 %}
{% set totdayrealn2 = 0 %}
{% set totetprealn2 = 0 %}
{% set totcaarealn2 = 0 %}
{% set totdaybudgn2 = 0 %}
{% set totetpbudgn2 = 0 %}
{% set totcaabudgn2 = 0 %}
<div class="card-body"> <div class="card-body">
<div class="dataTable_wrapper"> <div class="dataTable_wrapper">
<table class="table table-bordered" id="dataTables" style="width:100%"> <table class="table table-bordered tbdetail" id="dataTables" style="width:100%">
<thead> <thead>
<tr> <tr>
<th rowspan=2>Domaine</th> <th rowspan=2>Domaine</th>
<th rowspan=2>Projet</th> <th rowspan=2 class="tbhide">Projet</th>
<th class="text-center" style="width:150px" colspan=3>{{n1.start|date("m/Y")}}</th> <th class="text-center" style="width:150px" colspan=3>{{n1.start|date("m/Y")}}</th>
<th class="text-center" style="width:150px" colspan=3>{{n2.start|date("m/Y")}}</th> <th class="text-center" style="width:150px" colspan=3>{{n2.start|date("m/Y")}}</th>
</tr> </tr>
<tr> <tr>
<th width="20px" class="no-sort no-print"></th> <th width="20px" class="no-sort no-print tbhide"></th>
<th class="text-center" style="width:150px">Réel</th> <th class="text-center" style="width:150px">Réel</th>
<th class="text-center" style="width:150px">Budget</th> <th class="text-center" style="width:150px">Budget</th>
<th width="20px" class="no-sort no-print"></th> <th width="20px" class="no-sort no-print tbhide"></th>
<th class="text-center" style="width:150px">Réel</th> <th class="text-center" style="width:150px">Réel</th>
<th class="text-center" style="width:150px">Budget</th> <th class="text-center" style="width:150px">Budget</th>
</tr> </tr>
@@ -101,9 +149,9 @@ BUDGET
<tr> <tr>
<td>{{domaine.name}}</td> <td>{{domaine.name}}</td>
<td>{{project.name}}</td> <td class="tbhide">{{project.name}}</td>
<td class="text-center"> <td class="text-center tbhide">
<a href="{{path("app_budget_update",{type:"project",id:project.id,year:n1.id,returnto:n2.id})}}"><i class="fa fa-file"></i></a> <a href="{{path("app_budget_update",{type:"project",id:project.id,year:n1.id,returnto:n2.id})}}"><i class="fa fa-file"></i></a>
</td> </td>
<td class="text-center"> <td class="text-center">
@@ -119,7 +167,7 @@ BUDGET
</small> </small>
</td> </td>
<td class="text-center"> <td class="text-center tbhide">
<a href="{{path("app_budget_update",{type:"project",id:project.id,year:n2.id})}}"><i class="fa fa-file"></i></a> <a href="{{path("app_budget_update",{type:"project",id:project.id,year:n2.id})}}"><i class="fa fa-file"></i></a>
</td> </td>
<td class="text-center"> <td class="text-center">
@@ -175,39 +223,89 @@ BUDGET
</tr> </tr>
<tr class="total"> <tr class="total" data-domaine="{{domaine.name}}">
<td>{{domaine.name}}</td> <td>{{domaine.name}}</td>
<td>TOTAL</td> <td class="tbhide" >TOTAL</td>
<td class="no-print"> </td> <td class="no-print tbhide"> </td>
<td class="text-center"> <td class="text-center">
{{domaine.nbdayrealn1}} jours<br> {{domaine.nbdayrealn1}} jours<br>
<small> <small>
{{domaine.nbetprealn1|number_format(2)}}ETP / {{domaine.nbcaarealn1+nbcaarealn1}} {{domaine.nbetprealn1|number_format(2)}}ETP / {{domaine.nbcaarealn1+nbcaarealn1}}
</small> </small>
{% set totdayrealn1 = totdayrealn1 + domaine.nbdayrealn1 %}
{% set totetprealn1 = totetprealn1 + domaine.nbetprealn1 %}
{% set totcaarealn1 = totcaarealn1 + domaine.nbcaarealn1+nbcaarealn1 %}
</td> </td>
<td class="text-center"> <td class="text-center">
{{domaine.nbdaybudgn1+nbdaybudgn1}} jours<br> {{domaine.nbdaybudgn1+nbdaybudgn1}} jours<br>
<small> <small>
{{(domaine.nbetpbudgn1+nbetpbudgn1)|number_format(2)}}ETP / {{domaine.nbcaabudgn1+nbcaabudgn1}} {{(domaine.nbetpbudgn1+nbetpbudgn1)|number_format(2)}}ETP / {{domaine.nbcaabudgn1+nbcaabudgn1}}
</small> </small>
{% set totdaybudgn1 = totdaybudgn1 + domaine.nbdaybudgn1+nbdaybudgn1 %}
{% set totetpbudgn1 = totetpbudgn1 + domaine.nbetpbudgn1+nbetpbudgn1 %}
{% set totcaabudgn1 = totcaabudgn1 + domaine.nbcaabudgn1+nbcaabudgn1 %}
</td> </td>
<td class="no-print"> </td> <td class="no-print tbhide"> </td>
<td class="text-center"> <td class="text-center">
{{domaine.nbdayrealn2}} jours<br> {{domaine.nbdayrealn2}} jours<br>
<small> <small>
{{domaine.nbetprealn2|number_format(2)}}ETP / {{domaine.nbcaarealn2+nbcaarealn2}} {{domaine.nbetprealn2|number_format(2)}}ETP / {{domaine.nbcaarealn2+nbcaarealn2}}
</small> </small>
{% set totdayrealn2 = totdayrealn2 + domaine.nbdayrealn2 %}
{% set totetprealn2 = totetprealn2 + domaine.nbetprealn2 %}
{% set totcaarealn2 = totcaarealn2 + domaine.nbcaarealn2+nbcaarealn2 %}
</td> </td>
<td class="text-center"> <td class="text-center">
{{domaine.nbdaybudgn2+nbdaybudgn2}} jours<br> {{domaine.nbdaybudgn2+nbdaybudgn2}} jours<br>
<small> <small>
{{(domaine.nbetpbudgn2+nbetpbudgn2)|number_format(2)}}ETP / {{domaine.nbcaabudgn2+nbcaabudgn2}} {{(domaine.nbetpbudgn2+nbetpbudgn2)|number_format(2)}}ETP / {{domaine.nbcaabudgn2+nbcaabudgn2}}
</small> </small>
{% set totdaybudgn2 = totdaybudgn2 + domaine.nbdaybudgn2+nbdaybudgn2 %}
{% set totetpbudgn2 = totetpbudgn2 + domaine.nbetpbudgn2+nbetpbudgn2 %}
{% set totcaabudgn2 = totcaabudgn2 + domaine.nbcaabudgn2+nbcaabudgn2 %}
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
<tr class="total totalgene" data-domaine="TOTAL">
<td class="tdtotalgene" >RESULTAT</td>
<td class="tdtotalgene tbhide">RESULTAT</td>
<td class="no-print tbhide tdtotalgene"> </td>
<td class="text-center tdtotalgene">
{{totdayrealn1}} jours<br>
<small>
{{totetprealn1|number_format(2)}}ETP / {{totcaarealn1}}
</small>
</td>
<td class="text-center tdtotalgene">
{{totdaybudgn1}} jours<br>
<small>
{{totetpbudgn1|number_format(2)}}ETP / {{totcaabudgn1}}
</small>
</td>
<td class="no-print tbhide tdtotalgene"> </td>
<td class="text-center tdtotalgene">
{{totdayrealn2}} jours<br>
<small>
{{totetprealn2|number_format(2)}}ETP / {{totcaarealn2}}
</small>
</td>
<td class="text-center tdtotalgene">
{{totdaybudgn2}} jours<br>
<small>
{{totetpbudgn2|number_format(2)}}ETP / {{totcaabudgn2}}
</small>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -218,7 +316,15 @@ BUDGET
{% block localjavascript %} {% block localjavascript %}
$(document).ready(function() { $(document).ready(function() {
var groupColumn = 0; var groupColumn = 0;
var table = $('#dataTables').DataTable({
html="";
$('.total').each(function() {
html+="<tr>"+$(this).html()+"</tr>";
});
$("#tbsynthesebody").html(html);
var table = $('.tbdetail').DataTable({
"columnDefs": [ "columnDefs": [
{ "visible": false, "targets": groupColumn } { "visible": false, "targets": groupColumn }
], ],
@@ -242,7 +348,7 @@ BUDGET
} ); } );
// Order by the grouping // Order by the grouping
$('#dataTables tbody').on( 'click', 'tr.group', function () { $('.tbdetail tbody').on( 'click', 'tr.group', function () {
var currentOrder = table.order()[0]; var currentOrder = table.order()[0];
if ( currentOrder[0] === groupColumn && currentOrder[1] === 'asc' ) { if ( currentOrder[0] === groupColumn && currentOrder[1] === 'asc' ) {
table.order( [ groupColumn, 'desc' ] ).draw(); table.order( [ groupColumn, 'desc' ] ).draw();