mise en place des budgets

This commit is contained in:
2021-06-07 15:05:20 +02:00
parent 54dc485503
commit b12ed79946
5 changed files with 124 additions and 17 deletions

View File

@@ -22,6 +22,15 @@ class BudgetController extends AbstractController
{
$em = $this->getDoctrine()->getManager();
// Rechercher de l'ensemble des exercices sauf du premier
$years = $em
->createQueryBuilder('year')
->select('year')
->from('App:Year','year')
->orderBy('year.start')
->setFirstResult(1)
->getQuery()->getResult();
// Rechercher l'exercice demandé sinon le dernier
if($id)
$n2=$em->getRepository("App:Year")->find($id);
@@ -253,7 +262,9 @@ class BudgetController extends AbstractController
"domaines" => $tbdomaines,
"n1" => $n1,
"n2" => $n2,
"years" => $years,
"fgprint" => true,
]);
return new PdfResponse(
@@ -267,7 +278,8 @@ class BudgetController extends AbstractController
"usesidebar" => true,
"domaines" => $tbdomaines,
"n1" => $n1,
"n2" => $n2,
"n2" => $n2,
"years" => $years,
]);
}
}
@@ -304,7 +316,7 @@ class BudgetController extends AbstractController
if(!$data) {
$data=new Yeardomaine;
$data->setYear($year);
$data->setProject($domaine);
$data->setDomaine($domaine);
$em->persist($data);
$em->flush();
}

View File

@@ -33,17 +33,17 @@ class Yeardomaine
/**
* @ORM\Column(type="integer")
*/
private $nbdaybudget;
private $nbdaybudget=0;
/**
* @ORM\Column(type="integer")
*/
private $cabudget;
private $cabudget=0;
/**
* @ORM\Column(type="integer")
*/
private $careal;
private $careal=0;
public function getId(): ?int
{

View File

@@ -0,0 +1,63 @@
<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use FOS\CKEditorBundle\Form\Type\CKEditorType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\EntityManager;
class YeardomaineType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('submit',
SubmitType::class, [
"label" => "Valider",
"attr" => ["class" => "btn btn-success no-print"],
]
);
$builder->add('nbdaybudget',
IntegerType::class, [
"label" =>"Nombre de jours prévus pour l'exercice"
]
);
$builder->add('cabudget',
IntegerType::class, [
"label" =>"Budget prévu pour l'exercice"
]
);
$builder->add('careal',
IntegerType::class, [
"label" =>"Budget réel pour l'exercice"
]
);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'App\Entity\Yeardomaine',
'mode' => 'string',
));
}
}

View File

@@ -10,15 +10,40 @@
}
tr { page-break-inside: avoid; }
{%endif%}
.group td{
font-size:120%;
text-transform: uppercase;
background-color:#212529;
color:#ffffff;
}
.total td{
font-size:120%;
background-color:#cdcdcd;
font-weight: bold;
}
{% endblock %}
{% block body %}
<h1 class="page-header">
BUDGET
</h1>
<p><a class="btn btn-success" href={{ path('app_year_submit') }}>Ajouter</a></p>
</h1>
<div class="form-group ">
<label class="control-label" for="project_active">Exercice</label>
<select id="exercice" class="form-control">
{% for year in years %}
{% set selected=""%}
{% if year.id==n2.id%}
{% set selected="selected" %}
{% endif %}
<option value="{{year.id}}" {{selected}}>{{year.start|date("m/Y")}}</option>
{% endfor %}
</select>
</div>
<div class="card">
<div class="card-header">
<i class="fa fa-table fa-fw"></i> Budget
@@ -26,7 +51,7 @@ BUDGET
<div class="card-body">
<div class="dataTable_wrapper">
<table class="table table-striped table-bordered table-hover" id="dataTables" style="width:100%">
<table class="table table-bordered" id="dataTables" style="width:100%">
<thead>
<tr>
<th rowspan=2>Domaine</th>
@@ -35,10 +60,10 @@ BUDGET
<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" rowspan=2></th>
<th width="20px" class="no-sort no-print"></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" rowspan=2></th>
<th width="20px" class="no-sort no-print"></th>
<th class="text-center" style="width:150px">Réel</th>
<th class="text-center" style="width:150px">Budget</th>
</tr>
@@ -117,7 +142,7 @@ BUDGET
<td>Hors Projet</td>
<td class="text-center">
<a href="{{path("app_budget_update",{type:"budget",id:domaine.id,year:n1.id})}}"><i class="fa fa-file"></i></a>
<a href="{{path("app_budget_update",{type:"budget",id:domaine.id,year:n1.id,returnto:n2.id})}}"><i class="fa fa-file"></i></a>
</td>
<td class="text-center">
{{(domaine.nbdayrealn1-nbdayrealn1)}} jours<br>
@@ -133,7 +158,7 @@ BUDGET
</td>
<td class="text-center">
<a href="{{path("app_budget_update",{type:"budget",id:domaine.id,year:n2.id})}}"><i class="fa fa-file"></i></a>
<a href="{{path("app_budget_update",{type:"budget",id:domaine.id,year:n2.id,returnto:n2.id})}}"><i class="fa fa-file"></i></a>
</td>
<td class="text-center">
{{(domaine.nbdayrealn2-nbdayrealn2)}} jours<br>
@@ -150,7 +175,7 @@ BUDGET
</tr>
<tr>
<tr class="total">
<td>{{domaine.name}}</td>
<td>TOTAL</td>
@@ -192,7 +217,7 @@ BUDGET
{% block localjavascript %}
$(document).ready(function() {
var groupColumn = 1;
var groupColumn = 0;
var table = $('#dataTables').DataTable({
"columnDefs": [
{ "visible": false, "targets": groupColumn }
@@ -207,7 +232,7 @@ BUDGET
api.column(groupColumn, {page:'current'} ).data().each( function ( group, i ) {
if ( last !== group ) {
$(rows).eq( i ).before(
'<tr class="group"><td colspan="6">'+group+'</td></tr>'
'<tr class="group"><td colspan="7">'+group+'</td></tr>'
);
last = group;
@@ -226,6 +251,13 @@ BUDGET
table.order( [ groupColumn, 'asc' ] ).draw();
}
} );
$('#exercice').change(function() {
id=$(this).val();
url="{{ path('app_budget',{id:'xxx'}) }}";
url=url.replace("xxx",id);
document.location=url;
});
});
function myprint() {

View File

@@ -227,7 +227,7 @@
{% set routeignore = ["app_home","app_event","app_customer_submit","app_project_submit","app_offer_submit","app_task_submit","app_service_submit","app_user_submit","app_nature_submit","app_nature_update","app_job_submit","app_breakday_submit","app_breakday_update"] %}
{% if app.request.attributes.get('_route') not in routeignore %}
<li>
<a onClick="myprint()" style="cursor:pointer"><i class="fa fa-print fa-fw"></i></a>
<a onClick="myprint()" style="cursor:pointer; color:#fff"><i class="fa fa-print fa-fw"></i></a>
</li>
{%endif%}