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

View File

@@ -35,7 +35,7 @@ class DomaineType extends AbstractType
$builder->add('category',
ChoiceType::class, [
'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; }
{%endif%}
.group td{
.group td, .tbsynthese .tdtotalgene {
font-size:120%;
text-transform: uppercase;
background-color:#212529;
@@ -23,6 +23,10 @@
font-weight: bold;
}
.tbsynthese .tbhide {display:none}
{% endblock %}
{% block body %}
@@ -44,26 +48,70 @@ BUDGET
</select>
</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-header">
<i class="fa fa-table fa-fw"></i> Budget
</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="dataTable_wrapper">
<table class="table table-bordered" id="dataTables" style="width:100%">
<table class="table table-bordered tbdetail" id="dataTables" style="width:100%">
<thead>
<tr>
<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>{{n2.start|date("m/Y")}}</th>
</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">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">Budget</th>
</tr>
@@ -101,9 +149,9 @@ BUDGET
<tr>
<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>
</td>
<td class="text-center">
@@ -119,7 +167,7 @@ BUDGET
</small>
</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>
</td>
<td class="text-center">
@@ -175,39 +223,89 @@ BUDGET
</tr>
<tr class="total">
<tr class="total" data-domaine="{{domaine.name}}">
<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">
{{domaine.nbdayrealn1}} jours<br>
<small>
{{domaine.nbetprealn1|number_format(2)}}ETP / {{domaine.nbcaarealn1+nbcaarealn1}}
</small>
{% set totdayrealn1 = totdayrealn1 + domaine.nbdayrealn1 %}
{% set totetprealn1 = totetprealn1 + domaine.nbetprealn1 %}
{% set totcaarealn1 = totcaarealn1 + domaine.nbcaarealn1+nbcaarealn1 %}
</td>
<td class="text-center">
{{domaine.nbdaybudgn1+nbdaybudgn1}} jours<br>
<small>
{{(domaine.nbetpbudgn1+nbetpbudgn1)|number_format(2)}}ETP / {{domaine.nbcaabudgn1+nbcaabudgn1}}
</small>
{% set totdaybudgn1 = totdaybudgn1 + domaine.nbdaybudgn1+nbdaybudgn1 %}
{% set totetpbudgn1 = totetpbudgn1 + domaine.nbetpbudgn1+nbetpbudgn1 %}
{% set totcaabudgn1 = totcaabudgn1 + domaine.nbcaabudgn1+nbcaabudgn1 %}
</td>
<td class="no-print"> </td>
<td class="no-print tbhide"> </td>
<td class="text-center">
{{domaine.nbdayrealn2}} jours<br>
<small>
{{domaine.nbetprealn2|number_format(2)}}ETP / {{domaine.nbcaarealn2+nbcaarealn2}}
</small>
{% set totdayrealn2 = totdayrealn2 + domaine.nbdayrealn2 %}
{% set totetprealn2 = totetprealn2 + domaine.nbetprealn2 %}
{% set totcaarealn2 = totcaarealn2 + domaine.nbcaarealn2+nbcaarealn2 %}
</td>
<td class="text-center">
{{domaine.nbdaybudgn2+nbdaybudgn2}} jours<br>
<small>
{{(domaine.nbetpbudgn2+nbetpbudgn2)|number_format(2)}}ETP / {{domaine.nbcaabudgn2+nbcaabudgn2}}
</small>
{% set totdaybudgn2 = totdaybudgn2 + domaine.nbdaybudgn2+nbdaybudgn2 %}
{% set totetpbudgn2 = totetpbudgn2 + domaine.nbetpbudgn2+nbetpbudgn2 %}
{% set totcaabudgn2 = totcaabudgn2 + domaine.nbcaabudgn2+nbcaabudgn2 %}
</td>
</tr>
{% 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>
</table>
</div>
@@ -218,7 +316,15 @@ BUDGET
{% block localjavascript %}
$(document).ready(function() {
var groupColumn = 0;
var table = $('#dataTables').DataTable({
html="";
$('.total').each(function() {
html+="<tr>"+$(this).html()+"</tr>";
});
$("#tbsynthesebody").html(html);
var table = $('.tbdetail').DataTable({
"columnDefs": [
{ "visible": false, "targets": groupColumn }
],
@@ -242,7 +348,7 @@ BUDGET
} );
// Order by the grouping
$('#dataTables tbody').on( 'click', 'tr.group', function () {
$('.tbdetail tbody').on( 'click', 'tr.group', function () {
var currentOrder = table.order()[0];
if ( currentOrder[0] === groupColumn && currentOrder[1] === 'asc' ) {
table.order( [ groupColumn, 'desc' ] ).draw();