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