budget synthèse
This commit is contained in:
@@ -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;
|
||||||
|
@@ -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")
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -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();
|
||||||
|
Reference in New Issue
Block a user