From 51337ee42bbe7f41a76168c2c50f80025a04a515 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Mon, 28 Sep 2020 14:33:04 +0200 Subject: [PATCH 01/38] affichage des dates ISO dans les rapports --- .../src/Controller/ExportController.php | 74 ++++++++++--------- .../Export/export_project_weekly.csv.twig | 2 +- 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/src/schedule-2.0/src/Controller/ExportController.php b/src/schedule-2.0/src/Controller/ExportController.php index 46f2fd7..6cfbbdd 100644 --- a/src/schedule-2.0/src/Controller/ExportController.php +++ b/src/schedule-2.0/src/Controller/ExportController.php @@ -290,57 +290,58 @@ class ExportController extends AbstractController ->getQuery()->getResult(); // foreach($eventsbyweek as $event) { - // if(!isset($tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")])){ - // $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")] = [ - // "weeknumber" => $event->getStart()->format("W"), + // if(!isset($tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")])){ + // $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")] = [ + // "weeknumber" => $event->getStart()->format("o-\SW"), // "cumul" => 0, // ]; // } - // $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["cumul"] = $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["cumul"]+$event->getDuration(); + // $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["cumul"] = $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["cumul"]+$event->getDuration(); // } // foreach($eventsbyweek as $event) { - // if(!isset($tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"])){ - // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")] = [ - // "weeknumber" => $event->getStart()->format("W"), + // if(!isset($tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["users"])){ + // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")] = [ + // "weeknumber" => $event->getStart()->format("o-\SW"), // "users" => [], // ]; // } - // if(!isset($tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()])){ + // if(!isset($tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["users"][$event->getUser()->getId()])){ // $tbuser= [ // "id"=>$event->getUser()->getId(), // "displayname"=>$event->getUser()->getDisplayname(), // "cumul"=>0 // ]; - // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()] = $tbuser; + // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["users"][$event->getUser()->getId()] = $tbuser; // } - // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()]["cumul"] = $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()]["cumul"]+$event->getDuration(); + // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["users"][$event->getUser()->getId()]["cumul"] = $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["users"][$event->getUser()->getId()]["cumul"]+$event->getDuration(); // } foreach($eventsbyweek as $event) { - if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"])){ - $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")] = [ - "weeknumber" => $event->getStart()->format("W"), + if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"])){ + $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")] = [ + "isoweek" => $event->getStart()->format("\SW"), + "isoyear" => $event->getStart()->format("o"), "tasks" => [], ]; } - if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()])){ - $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()] = [ + if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()])){ + $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()] = [ "taskname" => $event->getTask()->getName(), "nature" => $event->getTask()->getNature()->getName(), "users" => [], ]; } - if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()])){ + if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()])){ $tbuser= [ "id"=>$event->getUser()->getId(), "displayname"=>$event->getUser()->getDisplayname(), "cumul"=>0 ]; - $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()] = $tbuser; + $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()] = $tbuser; } - $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()]["cumul"] = $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()]["cumul"]+$event->getDuration(); + $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()]["cumul"] = $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("o-\SW")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()]["cumul"]+$event->getDuration(); } // Somme astreintes validé par semaine $start=new \Datetime('first day of this month'); @@ -370,56 +371,57 @@ class ExportController extends AbstractController ->orderBy('penalty.start') ->getQuery()->getResult(); // foreach($penaltybyweek as $penalty) { - // if(!isset($tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")])){ - // $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")] = [ - // "weeknumber" => $penalty->getStart()->format("W"), + // if(!isset($tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")])){ + // $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")] = [ + // "weeknumber" => $penalty->getStart()->format("o-\SW"), // "cumul" => 0, // ]; // } - // $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["cumul"] = $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["cumul"]+$penalty->getDuration(); + // $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["cumul"] = $tbproject["weeks"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["cumul"]+$penalty->getDuration(); // } // foreach($penaltybyweek as $penalty) { - // if(!isset($tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["users"])){ - // $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")] = [ - // "weeknumber" => $penalty->getStart()->format("W"), + // if(!isset($tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["users"])){ + // $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")] = [ + // "weeknumber" => $penalty->getStart()->format("o-\SW"), // "users" => [], // ]; // } - // if(!isset($tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["users"][$penalty->getUser()->getId()])){ + // if(!isset($tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["users"][$penalty->getUser()->getId()])){ // $tbuser= [ // "id"=>$penalty->getUser()->getId(), // "displayname"=>$penalty->getUser()->getDisplayname(), // "cumul"=>0 // ]; - // $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["users"][$penalty->getUser()->getId()] = $tbuser; + // $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["users"][$penalty->getUser()->getId()] = $tbuser; // } - // $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["users"][$penalty->getUser()->getId()]["cumul"] = $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["users"][$penalty->getUser()->getId()]["cumul"]+$penalty->getDuration(); + // $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["users"][$penalty->getUser()->getId()]["cumul"] = $tbproject["weeks_by_name"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["users"][$penalty->getUser()->getId()]["cumul"]+$penalty->getDuration(); // } foreach($penaltybyweek as $penalty) { - if(!isset($tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["tasks"])){ - $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")] = [ - "weeknumber" => $penalty->getStart()->format("W"), + if(!isset($tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"])){ + $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")] = [ + "isoweek" => $event->getStart()->format("\SW"), + "isoyear" => $event->getStart()->format("o"), "tasks" => [], ]; } - if(!isset($tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["tasks"][$penalty->getTask()->getId()])){ - $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["tasks"][$penalty->getTask()->getId()] = [ + if(!isset($tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()])){ + $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()] = [ "taskname" => $penalty->getTask()->getName(), "nature" => $event->getTask()->getNature()->getName(), "users" => [], ]; } - if(!isset($tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()])){ + if(!isset($tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()])){ $tbuser= [ "id"=>$penalty->getUser()->getId(), "displayname"=>$penalty->getUser()->getDisplayname(), "cumul"=>0 ]; - $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()] = $tbuser; + $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()] = $tbuser; } - $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()]["cumul"] = $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("W")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()]["cumul"]+$penalty->getDuration(); + $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()]["cumul"] = $tbproject["weeks_by_task_by_user"][$penalty->getStart()->format("Y")][$penalty->getStart()->format("o-\SW")]["tasks"][$penalty->getTask()->getId()]["users"][$penalty->getUser()->getId()]["cumul"]+$penalty->getDuration(); } $tbprojects[$project->getId()]=$tbproject; diff --git a/src/schedule-2.0/templates/Export/export_project_weekly.csv.twig b/src/schedule-2.0/templates/Export/export_project_weekly.csv.twig index a0902a1..75ddc1b 100644 --- a/src/schedule-2.0/templates/Export/export_project_weekly.csv.twig +++ b/src/schedule-2.0/templates/Export/export_project_weekly.csv.twig @@ -6,7 +6,7 @@ Client;Projet;Tâche;Nature;Utilisateur;Année;Semaine;Cumul; {% for week in weeks %} {% for task in week.tasks%} {% for user in task.users%} -{{project.customer}};{{project.name}};{{task.taskname|replace({"&": "et"})}};{{task.nature}};{{user.displayname}};{{year}};S{{week.weeknumber}};{{user.cumul|replace({".": ","})}}; +{{project.customer}};{{project.name}};{{task.taskname|replace({"&": "et"})}};{{task.nature}};{{user.displayname}};{{week.isoyear}};{{week.isoweek}};{{user.cumul|replace({".": ","})}}; {% endfor %} {% endfor %} {% endfor %} From 9006dd3b386ccfd0b6d5cba3b02985c5468d2dff Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Mon, 28 Sep 2020 14:33:18 +0200 Subject: [PATCH 02/38] correciton sur la configuration du mailer --- src/schedule-2.0/src/Service/notificationService.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/schedule-2.0/src/Service/notificationService.php b/src/schedule-2.0/src/Service/notificationService.php index 1c754af..12e0688 100644 --- a/src/schedule-2.0/src/Service/notificationService.php +++ b/src/schedule-2.0/src/Service/notificationService.php @@ -2,14 +2,17 @@ namespace App\Service; use Doctrine\ORM\EntityManagerInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; + class notificationService { private $em; protected $mailer; protected $twig; + private $container; - public function __construct(EntityManagerInterface $em, \Swift_Mailer $mailer, \Twig\Environment $twig) + public function __construct(EntityManagerInterface $em, \Swift_Mailer $mailer, \Twig\Environment $twig, ContainerInterface $container) { $this->mailer = $mailer; $this->twig = $twig; From 4d98fd9d42b0f92f45443cfc2499b500672be05f Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Mon, 28 Sep 2020 15:57:17 +0200 Subject: [PATCH 03/38] =?UTF-8?q?Affichage=20et=20recherche=20d'un=20proje?= =?UTF-8?q?t=20poru=20cr=C3=A9er=20une=20tache?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Controller/ProjectController.php | 2 +- src/schedule-2.0/src/Form/TaskType.php | 31 +++++++------------ 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/src/schedule-2.0/src/Controller/ProjectController.php b/src/schedule-2.0/src/Controller/ProjectController.php index 8912b98..aae9fdb 100755 --- a/src/schedule-2.0/src/Controller/ProjectController.php +++ b/src/schedule-2.0/src/Controller/ProjectController.php @@ -188,7 +188,7 @@ class ProjectController extends AbstractController ->setParameter("value", "%".$q."%") ->orderBy('customer.name'); - $datas=$qb->setFirstResult(0)->setMaxResults($page_limit)->getQuery()->getResult(); + $datas=$qb->setFirstResult(0)->getQuery()->getResult(); foreach($datas as $data) { array_push($output,array("id"=>$data->getId(),"text"=>$data->getDisplayname())); } diff --git a/src/schedule-2.0/src/Form/TaskType.php b/src/schedule-2.0/src/Form/TaskType.php index 4452bf6..50fc623 100644 --- a/src/schedule-2.0/src/Form/TaskType.php +++ b/src/schedule-2.0/src/Form/TaskType.php @@ -65,25 +65,18 @@ class TaskType extends AbstractType ); $builder->add('project', - Select2EntityType::class, [ - "label" => "Projet", - "disabled" => false, - "required" => true, - "multiple" => false, - "remote_route" => "app_project_select", - "class" => "App:Project", - "primary_key" => "id", - "text_property" => "displayname", - "minimum_input_length" => 0, - "page_limit" => 10, - "allow_clear" => true, - "delay" => 250, - "cache" => false, - "cache_timeout" => 60000, - "language" => "fr", - "placeholder" => "Selectionner un Projet", - ] - ); + EntityType::class, [ + "label" => "Projet", + "class" => "App:Project", + "choice_label" => function ($project) { + return $project->getDisplayname();}, + + "disabled" => false, + "required" => true, + "multiple" => false, + "placeholder" => "Selectionner un Projet", + ] + ); } public function configureOptions(OptionsResolver $resolver) From 58ac18f005960276350b9619234b48d09a0c66be Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Mon, 28 Sep 2020 16:11:25 +0200 Subject: [PATCH 04/38] ajout vue par tache dans le planning --- .../src/Controller/ReportController.php | 74 ++++++++----------- .../templates/Report/planning.html.twig | 26 +++++++ 2 files changed, 55 insertions(+), 45 deletions(-) diff --git a/src/schedule-2.0/src/Controller/ReportController.php b/src/schedule-2.0/src/Controller/ReportController.php index 74e59e8..c8b4b38 100755 --- a/src/schedule-2.0/src/Controller/ReportController.php +++ b/src/schedule-2.0/src/Controller/ReportController.php @@ -299,7 +299,8 @@ class ReportController extends AbstractController "monthid"=> $start->format("Ym"), "monthlabel"=>$start->format("m/Y"), "days"=>[], - "users"=>[] + "users"=>[], + "tasks"=>[] ]; // Init du tableau des utilisateurs pour le mois @@ -311,7 +312,32 @@ class ReportController extends AbstractController ]; $tbproject["months"][$start->format("Ym")]["users"][$user->getId()]=$tbuser; } + // Init des taches par mois + $endmonth=clone $start; + $endmonth->add(new \DateInterval('P1M')); + $events = $em + ->createQueryBuilder('event') + ->select('task.id, task.name, SUM(event.duration) as somme') + ->from('App:Task','task') + ->from('App:Event','event') + ->Where('task.project=:project') + ->andWhere('event.task=task') + ->andWhere('event.end >=:start') + ->andWhere('event.end <:end') + ->setParameter('project',$project) + ->setParameter('start',$start) + ->setParameter('end',$endmonth) + ->groupBy('task.id') + ->getQuery()->getResult(); + foreach($events as $event) { + $tbtask= [ + "id"=>$event["id"], + "displayname"=>$event["name"], + "duration"=>$event["somme"] + ]; + $tbproject["months"][$start->format("Ym")]["tasks"][$event["id"]]=$tbtask; + } $start->add(new \DateInterval('P1M')); } @@ -341,7 +367,7 @@ class ReportController extends AbstractController $tbproject["months"][$start->format("Ym")]["users"][$user->getId()]["days"][$start->format("Ymd")]=$tbday; } - + $start->add(new \DateInterval('P1D')); } $tbprojects[$project->getId()]=$tbproject; @@ -611,49 +637,7 @@ class ReportController extends AbstractController } $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["cumul"] = $tbproject["weeks"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["cumul"]+$event->getDuration(); } - - // foreach($eventsbyweek as $event) { - // if(!isset($tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"])){ - // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")] = [ - // "weeknumber" => $event->getStart()->format("W"), - // "users" => [], - // ]; - // } - // if(!isset($tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()])){ - // $tbuser= [ - // "id"=>$event->getUser()->getId(), - // "displayname"=>$event->getUser()->getDisplayname(), - // "cumul"=>0 - // ]; - // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()] = $tbuser; - // } - - // $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()]["cumul"] = $tbproject["weeks_by_name"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["users"][$event->getUser()->getId()]["cumul"]+$event->getDuration(); - // } - // foreach($eventsbyweek as $event) { - // if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"])){ - // $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")] = [ - // "weeknumber" => $event->getStart()->format("W"), - // "tasks" => [], - // ]; - // } - // if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()])){ - // $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()] = [ - // "taskname" => $event->getTask()->getName(), - // "users" => [], - // ]; - // } - // if(!isset($tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()])){ - // $tbuser= [ - // "id"=>$event->getUser()->getId(), - // "displayname"=>$event->getUser()->getDisplayname(), - // "cumul"=>0 - // ]; - // $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()] = $tbuser; - // } - - // $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()]["cumul"] = $tbproject["weeks_by_task_by_user"][$event->getStart()->format("Y")][$event->getStart()->format("W")]["tasks"][$event->getTask()->getId()]["users"][$event->getUser()->getId()]["cumul"]+$event->getDuration(); - // } + // Somme astreintes validé par semaine $start=new \Datetime('first day of this month'); $start->sub(new \DateInterval('P'.$nbmonth.'M')); diff --git a/src/schedule-2.0/templates/Report/planning.html.twig b/src/schedule-2.0/templates/Report/planning.html.twig index 50dfb35..607637b 100644 --- a/src/schedule-2.0/templates/Report/planning.html.twig +++ b/src/schedule-2.0/templates/Report/planning.html.twig @@ -142,6 +142,32 @@ {% endfor %} + + {% if month.total > 0 %} +
+ + {% for task in month.tasks %} + + + + + {% endfor %} + + {% if month.totala > 0 %} + + + + + {% endif %} + + + + + + + +
{{ task.displayname }}{{ task.duration|number_format(2, '.', ' ') }}
Astreinte{{ month.totala|number_format(2, '.', ' ') }}
TOTAL{{ (month.total + month.totala)|number_format(2, '.', ' ') }}
+ {% endif %} {% if month.total > 0 %} Total = {{ month.total }} {% endif %} From c81d58d399e35bc8e117b262d355d271303d8339 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Tue, 29 Sep 2020 10:19:41 +0200 Subject: [PATCH 05/38] =?UTF-8?q?am=C3=A9lioration=20affichage=20listes=20?= =?UTF-8?q?des=20taches?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Controller/EventController.php | 5 ++-- .../src/Controller/TimerController.php | 4 +-- .../templates/Event/list.html.twig | 25 ++++++++++++++++--- .../templates/Timer/list.html.twig | 20 ++++++++++++--- 4 files changed, 42 insertions(+), 12 deletions(-) diff --git a/src/schedule-2.0/src/Controller/EventController.php b/src/schedule-2.0/src/Controller/EventController.php index 2708c8a..d3255e4 100755 --- a/src/schedule-2.0/src/Controller/EventController.php +++ b/src/schedule-2.0/src/Controller/EventController.php @@ -28,12 +28,13 @@ class EventController extends AbstractController $em = $this->getDoctrine()->getManager(); $users = $em->getRepository("App:User")->findAll(); $tasks = $em->getRepository("App:Task")->findAll(); - + $projects= $em->getRepository("App:Project")->findBy(["active"=>true]); + return $this->render($this->render.'list.html.twig',[ "useheader" => true, "usesidebar" => true, "users" => $users, - "tasks" => $tasks + "projects" => $projects ]); } diff --git a/src/schedule-2.0/src/Controller/TimerController.php b/src/schedule-2.0/src/Controller/TimerController.php index bf6ed94..ab99681 100644 --- a/src/schedule-2.0/src/Controller/TimerController.php +++ b/src/schedule-2.0/src/Controller/TimerController.php @@ -23,14 +23,14 @@ class TimerController extends AbstractController $iduser = $this->get("session")->get("iduser"); $user = $em->getRepository("App:User")->find($iduser); - $tasks = $em->getRepository("App:Task")->findAll(); + $projects= $em->getRepository("App:Project")->findBy(["active"=>true]); $timers = $em->getRepository("App:Timer")->findBy(["user"=>$iduser]); return $this->render($this->render.'list.html.twig',[ "useheader" => true, "usesidebar" => true, "user" => $user, - "tasks" => $tasks, + "projects" => $projects, "timers" => $timers, ]); } diff --git a/src/schedule-2.0/templates/Event/list.html.twig b/src/schedule-2.0/templates/Event/list.html.twig index b703b6b..10f4c9d 100644 --- a/src/schedule-2.0/templates/Event/list.html.twig +++ b/src/schedule-2.0/templates/Event/list.html.twig @@ -42,6 +42,14 @@ .eventEstimate { margin: -3px 10px; } + .select2-results__group { + font-size:12px !important; + } + .select2-results__option{ + font-size: 14px; + padding-left:15px + } + {% endblock %} {% block body %} @@ -83,9 +91,14 @@ @@ -169,8 +182,12 @@ diff --git a/src/schedule-2.0/templates/Timer/list.html.twig b/src/schedule-2.0/templates/Timer/list.html.twig index f829542..1d9cf2f 100644 --- a/src/schedule-2.0/templates/Timer/list.html.twig +++ b/src/schedule-2.0/templates/Timer/list.html.twig @@ -7,6 +7,13 @@ #timer-desc { width:300px; } +.select2-results__group { + font-size:12px !important; +} +.select2-results__option{ + font-size: 14px; + padding-left:15px +} {% endblock %} {% block body %} @@ -20,11 +27,16 @@ SUIVI HORAIRE Créer un Timer {% if user %} Lancer un Timer : - + + {% for project in projects|sort((a, b) => a.displayname <=> b.displayname) %} + + {% for task in project.tasks|sort((a, b) => a.displayname <=> b.displayname) %} + + {% endfor %} + {% endfor %} + From 45606d9b97e586eea9cacb506f127551ebabae3e Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Tue, 29 Sep 2020 10:34:05 +0200 Subject: [PATCH 06/38] correciton requete recherche dans liste des projets --- .../src/Controller/ProjectController.php | 2 +- src/schedule-2.0/src/Form/TaskType.php | 31 ++++++++++++------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/schedule-2.0/src/Controller/ProjectController.php b/src/schedule-2.0/src/Controller/ProjectController.php index aae9fdb..87a3540 100755 --- a/src/schedule-2.0/src/Controller/ProjectController.php +++ b/src/schedule-2.0/src/Controller/ProjectController.php @@ -183,8 +183,8 @@ class ProjectController extends AbstractController ->from("App:Project","project") ->from("App:Customer", "customer") ->where("project.name LIKE :value") + ->orWhere("customer.name LIKE :value") ->andWhere("project.customer=customer") - ->andWhere("customer.name LIKE :value") ->setParameter("value", "%".$q."%") ->orderBy('customer.name'); diff --git a/src/schedule-2.0/src/Form/TaskType.php b/src/schedule-2.0/src/Form/TaskType.php index 50fc623..e861bfd 100644 --- a/src/schedule-2.0/src/Form/TaskType.php +++ b/src/schedule-2.0/src/Form/TaskType.php @@ -65,18 +65,25 @@ class TaskType extends AbstractType ); $builder->add('project', - EntityType::class, [ - "label" => "Projet", - "class" => "App:Project", - "choice_label" => function ($project) { - return $project->getDisplayname();}, - - "disabled" => false, - "required" => true, - "multiple" => false, - "placeholder" => "Selectionner un Projet", - ] - ); + Select2EntityType::class, [ + "label" => "Projet", + "disabled" => false, + "required" => true, + "multiple" => false, + "remote_route" => "app_project_select", + "class" => "App:Project", + "primary_key" => "id", + "text_property" => "displayname", + "minimum_input_length" => 2, + "page_limit" => 100, + "allow_clear" => true, + "delay" => 250, + "cache" => false, + "cache_timeout" => 60000, + "language" => "fr", + "placeholder" => "Selectionner un Projet", + ] + ); } public function configureOptions(OptionsResolver $resolver) From e4526cb621397fa7bee3093dd5d4d84512e077cb Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Thu, 1 Oct 2020 10:36:48 +0200 Subject: [PATCH 07/38] =?UTF-8?q?impl=C3=A9mentaiton=20de=20=5Ftosrting=20?= =?UTF-8?q?a=20project=20pour=20la=20cr=C3=A9ation=20de=20taches?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/schedule-2.0/src/Entity/Project.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/schedule-2.0/src/Entity/Project.php b/src/schedule-2.0/src/Entity/Project.php index f984085..7bd70ca 100644 --- a/src/schedule-2.0/src/Entity/Project.php +++ b/src/schedule-2.0/src/Entity/Project.php @@ -73,6 +73,10 @@ class Project $this->tasks = new ArrayCollection(); $this->userprojects = new ArrayCollection(); } + public function __toString() + { + return $this->name; + } public function getId(): ?int { From 653031017ceaedce0bcec08c1a91f3faf75f5058 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Tue, 6 Oct 2020 14:19:46 +0200 Subject: [PATCH 08/38] set filter on customer project --- src/schedule-2.0/src/Form/ProjectType.php | 13 ++++++++++--- src/schedule-2.0/templates/Project/edit.html.twig | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/schedule-2.0/src/Form/ProjectType.php b/src/schedule-2.0/src/Form/ProjectType.php index 5c1ac4f..a70d445 100644 --- a/src/schedule-2.0/src/Form/ProjectType.php +++ b/src/schedule-2.0/src/Form/ProjectType.php @@ -45,13 +45,20 @@ class ProjectType extends AbstractType ] ); + $builder->add('customer', EntityType::class, [ - "class" => "App:Customer", "label" => "Client", - "choice_label" => "name", + "class" => "App:Customer", + "choice_label" => function ($customer) { + return $customer->getName();}, + + "disabled" => false, + "required" => true, + "multiple" => false, + "placeholder" => "Selectionner un Client", ] - ); + ); $builder->add('service', EntityType::class, [ diff --git a/src/schedule-2.0/templates/Project/edit.html.twig b/src/schedule-2.0/templates/Project/edit.html.twig index 6672d45..b99d325 100755 --- a/src/schedule-2.0/templates/Project/edit.html.twig +++ b/src/schedule-2.0/templates/Project/edit.html.twig @@ -61,6 +61,7 @@ {% endblock %} {% block localjavascript %} +$("#project_customer").addClass("select2entity"); $(document).ready(function() { $("#project_name").focus(); }); From c28f7a8b2f9767109185fbd42e270d6a0eef91c2 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Tue, 6 Oct 2020 14:41:32 +0200 Subject: [PATCH 09/38] select default nature on Task --- src/schedule-2.0/templates/Task/edit.html.twig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/schedule-2.0/templates/Task/edit.html.twig b/src/schedule-2.0/templates/Task/edit.html.twig index 2bf54ae..4d99524 100755 --- a/src/schedule-2.0/templates/Task/edit.html.twig +++ b/src/schedule-2.0/templates/Task/edit.html.twig @@ -62,6 +62,10 @@ {% endblock %} {% block localjavascript %} + var defaultsel = 'Prestation'; + $("#task_nature option").filter(function() { + return $(this).text() == defaultsel; + }).prop('selected', true); $(document).ready(function() { $("#task_name").focus(); From 8b9e27ad5007d2337c8c82b8e9ab17b8b6ca0ac5 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Tue, 6 Oct 2020 14:46:25 +0200 Subject: [PATCH 10/38] update offer title page --- src/schedule-2.0/templates/Offer/edit.html.twig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/schedule-2.0/templates/Offer/edit.html.twig b/src/schedule-2.0/templates/Offer/edit.html.twig index 9f9d3de..a5c0950 100755 --- a/src/schedule-2.0/templates/Offer/edit.html.twig +++ b/src/schedule-2.0/templates/Offer/edit.html.twig @@ -4,11 +4,11 @@ {{ form_start(form) }}

{% if fgprint is defined and fgprint %} - PROPOSITION + COMMANDE {% elseif mode=="update" %} - Modification PROPOSITION + Modification COMMANDE {% elseif mode=="submit" %} - Création PROPOSITION + Création COMMANDE {% endif %}

From 0d9524f5d2f9c3661067920eefa5a0e5127c4cb4 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Tue, 6 Oct 2020 15:02:29 +0200 Subject: [PATCH 11/38] set Default Nature Task choice correctly --- src/schedule-2.0/src/Controller/TaskController.php | 3 ++- src/schedule-2.0/templates/Project/edit.html.twig | 2 +- src/schedule-2.0/templates/Task/edit.html.twig | 4 ---- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/schedule-2.0/src/Controller/TaskController.php b/src/schedule-2.0/src/Controller/TaskController.php index 260bffa..fb27118 100755 --- a/src/schedule-2.0/src/Controller/TaskController.php +++ b/src/schedule-2.0/src/Controller/TaskController.php @@ -53,7 +53,8 @@ class TaskController extends AbstractController // Initialisation de l'enregistrement $em = $this->getDoctrine()->getManager(); $data = new Entity(); - + $defaultnature = $em->getRepository("App:Nature")->findOneBy(['name' => 'Prestation']); + $data->setNature($defaultnature); // Création du formulaire $form = $this->createForm(Form::class,$data,array("mode"=>"submit")); diff --git a/src/schedule-2.0/templates/Project/edit.html.twig b/src/schedule-2.0/templates/Project/edit.html.twig index b99d325..df6c2d3 100755 --- a/src/schedule-2.0/templates/Project/edit.html.twig +++ b/src/schedule-2.0/templates/Project/edit.html.twig @@ -61,7 +61,7 @@ {% endblock %} {% block localjavascript %} -$("#project_customer").addClass("select2entity"); + $("#project_customer").addClass("select2entity"); $(document).ready(function() { $("#project_name").focus(); }); diff --git a/src/schedule-2.0/templates/Task/edit.html.twig b/src/schedule-2.0/templates/Task/edit.html.twig index 4d99524..2bf54ae 100755 --- a/src/schedule-2.0/templates/Task/edit.html.twig +++ b/src/schedule-2.0/templates/Task/edit.html.twig @@ -62,10 +62,6 @@ {% endblock %} {% block localjavascript %} - var defaultsel = 'Prestation'; - $("#task_nature option").filter(function() { - return $(this).text() == defaultsel; - }).prop('selected', true); $(document).ready(function() { $("#task_name").focus(); From 9a72b782c24b888900ded846be700136e81d16ba Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Tue, 6 Oct 2020 15:23:58 +0200 Subject: [PATCH 12/38] =?UTF-8?q?Affichage=20des=20user=20actif=20uniqueme?= =?UTF-8?q?nt=20sur=20la=20cr=C3=A9ation=20d'events?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/schedule-2.0/templates/Event/list.html.twig | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/schedule-2.0/templates/Event/list.html.twig b/src/schedule-2.0/templates/Event/list.html.twig index 10f4c9d..e9dbf6d 100644 --- a/src/schedule-2.0/templates/Event/list.html.twig +++ b/src/schedule-2.0/templates/Event/list.html.twig @@ -75,10 +75,15 @@ Intervenant* - + {% for service in app.session.get('services') %} {% set selected="" %} {%if service.id==app.session.get('idservice') %} @@ -320,7 +320,7 @@
+ From e5863fdd0a8e9b04d55a5dbe5bfa25ee465ad5f7 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Mon, 12 Oct 2020 14:50:30 +0200 Subject: [PATCH 33/38] set template --- .../templates/Offer/getorders.html.twig | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/schedule-2.0/templates/Offer/getorders.html.twig diff --git a/src/schedule-2.0/templates/Offer/getorders.html.twig b/src/schedule-2.0/templates/Offer/getorders.html.twig new file mode 100644 index 0000000..9a9529d --- /dev/null +++ b/src/schedule-2.0/templates/Offer/getorders.html.twig @@ -0,0 +1,74 @@ +{% extends "base.html.twig" %} + +{% block localstyle %} + td { + padding:5px !important; + } + {% if fgprint is defined and fgprint %} + table { font-size:10px;} + th,td { + border: 1px solid #37474F; + } + thead { + display: table-header-group; + } + tr { page-break-inside: avoid; } + {%endif%} +{% endblock %} + +{% block body %} +

+ Nouvelles Commandes Dolibarr +

+ +

+
+
+ + + + + + + + + + + + + + + {% for order in orders %} + + + + + {% if order.type =="commande" %}{% endif %} + {% if order.type =="propal" %}{% endif %} + + + + + + + + {% endfor %} + +
Actionclientrefref_clientstatuttotal_httotal_tvatotal_ttc
+ + {{order.customer_name}}{{order.ref}}{{order.ref}}{{order.ref_client}}{{order.statut}}{{order.total_ht|number_format(2, '.', ' ')}}{{order.total_tva|number_format(2, '.', ' ')}}{{order.total_ttc|number_format(2, '.', ' ')}}
+
+
+ +{% endblock %} +{% block localjavascript %} + $(document).ready(function() { + $('#dataTables').DataTable({ + columnDefs: [ { "targets": "no-sort", "orderable": false }, { "targets": "no-string", "type" : "num" } ], + responsive: true, + iDisplayLength: 100, + order: [[ 2, "asc" ]] + }); + }); + +{% endblock %} From bb7e66f0c9148d7c2ddf987914d3f7b23eacc3d0 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Tue, 13 Oct 2020 10:42:48 +0200 Subject: [PATCH 34/38] Add link on dolibarr on convertion --- .../src/Controller/OfferController.php | 6 ++- src/schedule-2.0/src/Entity/Offer.php | 42 +++++++++++++------ 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/src/schedule-2.0/src/Controller/OfferController.php b/src/schedule-2.0/src/Controller/OfferController.php index 55330da..9560240 100755 --- a/src/schedule-2.0/src/Controller/OfferController.php +++ b/src/schedule-2.0/src/Controller/OfferController.php @@ -29,7 +29,7 @@ class OfferController extends AbstractController { $em = $this->getDoctrine()->getManager(); $services=$em->getRepository("App:Service")->findAllOfferActive($this->get('session')->get('activeproject'),$this->get('session')->get('activeoffer'),$this->get('session')->get('idservice')); - + if($request->query->get('fgprint')) { $render = $this->renderView($this->render.'list.html.twig',[ "services" => $services, @@ -111,7 +111,10 @@ class OfferController extends AbstractController // Sur validation if ($form->get('submit')->isClicked() && $form->isValid()) { + $data = $form->getData(); + $data->setIddolibarr($order["id"]); + $data->setTypedolibarr($type); $em->persist($data); $em->flush(); @@ -215,7 +218,6 @@ class OfferController extends AbstractController $this->get('session')->set('activeoffer',!$this->get('session')->get('activeoffer')); return $this->redirectToRoute($this->route); } - public function getorders(){ $em = $this->getDoctrine()->getManager(); $orders = $this->dolibarrapi->getOrders(); diff --git a/src/schedule-2.0/src/Entity/Offer.php b/src/schedule-2.0/src/Entity/Offer.php index 46b9c72..c8996a4 100644 --- a/src/schedule-2.0/src/Entity/Offer.php +++ b/src/schedule-2.0/src/Entity/Offer.php @@ -60,10 +60,15 @@ class Offer private $active; /** - * @ORM\Column(name="iddolibarr", type="decimal", scale=2) + * @ORM\Column(name="iddolibarr", type="decimal", scale=5, nullable=true) * */ private $iddolibarr; + /** + * @ORM\Column(name="typedolibarr", type="string", nullable=true) + * + */ + private $typedolibarr; /** * @ORM\ManyToOne(targetEntity="Project", inversedBy="offers") @@ -151,17 +156,6 @@ class Offer return $this; } - public function getIdDolibarr(): ?string - { - return $this->iddolibarr; - } - - public function setIdDolibarr(string $iddolibarr): self - { - $this->iddolibarr = $iddolibarr; - - return $this; - } public function getProject(): ?Project { return $this->project; @@ -174,5 +168,29 @@ class Offer return $this; } + public function getIddolibarr(): ?string + { + return $this->iddolibarr; + } + + public function setIddolibarr(?string $iddolibarr): self + { + $this->iddolibarr = $iddolibarr; + + return $this; + } + + public function getTypedolibarr(): ?string + { + return $this->typedolibarr; + } + + public function setTypedolibarr(?string $typedolibarr): self + { + $this->typedolibarr = $typedolibarr; + + return $this; + } + } From 5ea06c9aece8d51ea49bb727ad5a486697400398 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Tue, 13 Oct 2020 10:43:09 +0200 Subject: [PATCH 35/38] set template for link orders --- src/schedule-2.0/src/Service/dolibarrApi.php | 4 ++-- src/schedule-2.0/templates/Offer/getorders.html.twig | 3 ++- src/schedule-2.0/templates/Offer/list.html.twig | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/schedule-2.0/src/Service/dolibarrApi.php b/src/schedule-2.0/src/Service/dolibarrApi.php index 1353568..1bf2e1b 100644 --- a/src/schedule-2.0/src/Service/dolibarrApi.php +++ b/src/schedule-2.0/src/Service/dolibarrApi.php @@ -39,7 +39,7 @@ class dolibarrApi $qty = $qty + intval($line['qty']); } $order['total_qty'] = $qty; - array_push( $tbcontent, $order); + array_push($tbcontent, $order); } return $tbcontent; } @@ -65,11 +65,11 @@ class dolibarrApi $order['total_qty'] = $qty; return $order; } + public function getPropals() { $start=new \Datetime(); $start->sub(new \DateInterval('P6M')); - $response = $this->client->request('GET',$this->doliuri."/api/index.php/proposals?sortfield=t.rowid&sortorder=DESC&limit=100&sqlfilters=(t.datec%3A%3E%3A'".$start->format("Ymd")."')"); diff --git a/src/schedule-2.0/templates/Offer/getorders.html.twig b/src/schedule-2.0/templates/Offer/getorders.html.twig index 9a9529d..55fe391 100644 --- a/src/schedule-2.0/templates/Offer/getorders.html.twig +++ b/src/schedule-2.0/templates/Offer/getorders.html.twig @@ -21,7 +21,8 @@ Nouvelles Commandes Dolibarr -

+

Liste des dernières commandes/propal récupérées depuis Dolibarr.
+ Les commandes doivent avoir un statut "Validée", et le Propal un statut "Signée" pour apparaître dans la liste.

diff --git a/src/schedule-2.0/templates/Offer/list.html.twig b/src/schedule-2.0/templates/Offer/list.html.twig index 5c0a16e..e299072 100644 --- a/src/schedule-2.0/templates/Offer/list.html.twig +++ b/src/schedule-2.0/templates/Offer/list.html.twig @@ -85,6 +85,10 @@ + {%if offer.iddolibarr %} + {% if offer.typedolibarr == "commande" %}{% endif %} + {% if offer.typedolibarr == "propal" %}{% endif %} + {% endif %} From 62e7339057208edef0a53be828389e221b333860 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Wed, 14 Oct 2020 17:02:41 +0200 Subject: [PATCH 36/38] ajout variable pour activer dolibarr --- src/schedule-2.0/.env | 1 + src/schedule-2.0/config/services.yaml | 1 + src/schedule-2.0/src/Controller/OfferController.php | 3 ++- src/schedule-2.0/templates/Offer/list.html.twig | 2 ++ 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/schedule-2.0/.env b/src/schedule-2.0/.env index c5152d3..75b159f 100644 --- a/src/schedule-2.0/.env +++ b/src/schedule-2.0/.env @@ -66,5 +66,6 @@ MAILER_URL= ## Sentry DSN SENTRY_DSN= +DOLIBARR_ACTIVE=false DOLIBARR_API_KEY= DOLIBARR_URI= diff --git a/src/schedule-2.0/config/services.yaml b/src/schedule-2.0/config/services.yaml index 17883fb..cb5a388 100644 --- a/src/schedule-2.0/config/services.yaml +++ b/src/schedule-2.0/config/services.yaml @@ -21,6 +21,7 @@ parameters: casFirstname: '%env(resolve:CAS_FIRSTNAME)%' officeHourStart: '%env(resolve:OFFICE_HOUR_START)%' officeHourEnd: '%env(resolve:OFFICE_HOUR_END)%' + doliActive: '%env(resolve:DOLIBARR_ACTIVE)%' doliApiKey: '%env(resolve:DOLIBARR_API_KEY)%' doliUri: '%env(resolve:DOLIBARR_URI)%' diff --git a/src/schedule-2.0/src/Controller/OfferController.php b/src/schedule-2.0/src/Controller/OfferController.php index 9560240..1b4512b 100755 --- a/src/schedule-2.0/src/Controller/OfferController.php +++ b/src/schedule-2.0/src/Controller/OfferController.php @@ -35,7 +35,7 @@ class OfferController extends AbstractController "services" => $services, "useheader" => true, "usesidebar" => true, - "fgprint" => true, + "fgprint" => true, ]); return new PdfResponse( @@ -48,6 +48,7 @@ class OfferController extends AbstractController "services" => $services, "useheader" => true, "usesidebar" => true, + "doliactive" => $this->getParameter('doliActive'), ]); } } diff --git a/src/schedule-2.0/templates/Offer/list.html.twig b/src/schedule-2.0/templates/Offer/list.html.twig index e299072..ab15892 100644 --- a/src/schedule-2.0/templates/Offer/list.html.twig +++ b/src/schedule-2.0/templates/Offer/list.html.twig @@ -22,7 +22,9 @@ Ajouter + {% if doliactive %} Récupérer les commandes de Dolibarr + {% endif %}
From 0e159604e6e7483c958b4acc6ad8ffe1e21b8e58 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Wed, 14 Oct 2020 17:09:26 +0200 Subject: [PATCH 37/38] maj condition affichage dolibarr --- src/schedule-2.0/templates/Offer/list.html.twig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/schedule-2.0/templates/Offer/list.html.twig b/src/schedule-2.0/templates/Offer/list.html.twig index ab15892..3cfa755 100644 --- a/src/schedule-2.0/templates/Offer/list.html.twig +++ b/src/schedule-2.0/templates/Offer/list.html.twig @@ -22,7 +22,7 @@ Ajouter - {% if doliactive %} + {% if doliactive == "true" %} Récupérer les commandes de Dolibarr {% endif %} From 91536ed9307a7efa624149afefc1e9a501f5e867 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Fri, 6 Nov 2020 15:25:29 +0100 Subject: [PATCH 38/38] update dico description --- dicos/25_schedule.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dicos/25_schedule.xml b/dicos/25_schedule.xml index f29dcf6..6aabfb9 100644 --- a/dicos/25_schedule.xml +++ b/dicos/25_schedule.xml @@ -34,8 +34,8 @@ - - + + 09:00
{{offer.project.customer.name}} {{offer.project.name}} {{offer.name}}{{offer.ref}}{{offer.ref}}{{offer.ref}} {{offer.quantity|number_format(2, '.', ' ')}} {{offer.pu|number_format(2, '.', ' ')}}