Skip to content

Commit f8cc19f

Browse files
author
Philippe GODOT
committed
correction mise a jour pourcentage avancement tâche projet quand ajout tâche dans projet
1 parent 5ed622e commit f8cc19f

File tree

2 files changed

+32
-11
lines changed

2 files changed

+32
-11
lines changed

hook.php

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -546,18 +546,18 @@ function plugin_projectbridge_ticket_update(Ticket $ticket)
546546
if ($bridge_ticket->getProjectId() > 0) {
547547
$bridge_ticket->update([
548548
'id' => $bridge_ticket->getId(),
549-
'project_id' => $project_id,
549+
'projecttasks_id' => $task_id,
550550
]);
551551
} else {
552552
$bridge_ticket->add([
553553
'ticket_id' => $ticket->getId(),
554-
'project_id' => $project_id,
554+
'projecttasks_id' => $task_id,
555555
]);
556556
}
557557
} else {
558558
$bridge_ticket->add([
559559
'ticket_id' => $ticket->getId(),
560-
'project_id' => $project_id,
560+
'projecttasks_id' => $task_id,
561561
]);
562562
}
563563
}
@@ -574,14 +574,10 @@ function plugin_projectbridge_ticket_update(Ticket $ticket)
574574
function plugin_projectbridge_ticketask_add(TicketTask $ticket_task)
575575
{
576576
if (isset($ticket_task->fields['actiontime'])) {
577-
// no timediff needed because it's already in DB
578-
PluginProjectbridgeTask::updateProgressPercent((int) $ticket_task->fields['tickets_id']);
577+
updateProjectTaskProgressPercent($ticket_task);
579578
}
580579
}
581580

582-
583-
584-
585581
/**
586582
* Hook called before the update of a ticket task
587583
* If possible, update the linked project task's progress percentage
@@ -592,11 +588,36 @@ function plugin_projectbridge_ticketask_add(TicketTask $ticket_task)
592588
function plugin_projectbridge_ticketask_update(TicketTask $ticket_task)
593589
{
594590
if (isset($ticket_task->fields['actiontime']) && isset($ticket_task->input['actiontime'])) {
595-
$timediff = $ticket_task->input['actiontime'] - $ticket_task->fields['actiontime'];
596-
PluginProjectbridgeTask::updateProgressPercent((int) $ticket_task->fields['tickets_id'], (int) $timediff);
591+
//$timediff = $ticket_task->input['actiontime'] - $ticket_task->fields['actiontime'];
592+
updateProjectTaskProgressPercent($ticket_task);
597593
}
598594
}
599595

596+
/**
597+
* this function update the progessPercent of processTask when a ticketTask is add or update with time associate.
598+
* @param TicketTask $ticket_task
599+
*/
600+
function updateProjectTaskProgressPercent(TicketTask $ticket_task){
601+
// search if entry exist for the associate ticket
602+
$ticketId = $ticket_task->fields['tickets_id'];
603+
$bridge_ticket = new PluginProjectbridgeTicket();
604+
$results = $bridge_ticket->find(['ticket_id' => $ticketId]);
605+
foreach($results as $result){
606+
if (is_array($result) && $result['projecttasks_id'] > 0) {
607+
$projectTask = new ProjectTask();
608+
$projectTask->getFromDB($result['projecttasks_id']);
609+
$project_id = $projectTask->fields['projects_id'];
610+
$pluginProjectbridgeContract = new PluginProjectbridgeContract();
611+
$pluginProjectbridgeContracts = $pluginProjectbridgeContract->find(['project_id' => $project_id]);
612+
foreach($pluginProjectbridgeContracts as $pgc)
613+
{
614+
$contract_id = $pgc['contract_id'];
615+
PluginProjectbridgeTask::updateProjectTaskProgressPercent($result['projecttasks_id'], $contract_id);
616+
}
617+
}
618+
}
619+
}
620+
600621
/**
601622
* Hook called after showing a tab
602623
*

setup.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22

33

4-
define('PLUGIN_PROJECTBRIDGE_VERSION', '2.7.2');
4+
define('PLUGIN_PROJECTBRIDGE_VERSION', '2.7.3');
55

66
define('PLUGIN_PROJECTBRIDGE_MIN_GLPI_VERSION', '10.0');
77
define('PLUGIN_PROJECTBRIDGE_MAX_GLPI_VERSION', '11.0');

0 commit comments

Comments
 (0)