@@ -546,18 +546,18 @@ function plugin_projectbridge_ticket_update(Ticket $ticket)
546
546
if ($ bridge_ticket ->getProjectId () > 0 ) {
547
547
$ bridge_ticket ->update ([
548
548
'id ' => $ bridge_ticket ->getId (),
549
- 'project_id ' => $ project_id ,
549
+ 'projecttasks_id ' => $ task_id ,
550
550
]);
551
551
} else {
552
552
$ bridge_ticket ->add ([
553
553
'ticket_id ' => $ ticket ->getId (),
554
- 'project_id ' => $ project_id ,
554
+ 'projecttasks_id ' => $ task_id ,
555
555
]);
556
556
}
557
557
} else {
558
558
$ bridge_ticket ->add ([
559
559
'ticket_id ' => $ ticket ->getId (),
560
- 'project_id ' => $ project_id ,
560
+ 'projecttasks_id ' => $ task_id ,
561
561
]);
562
562
}
563
563
}
@@ -574,14 +574,10 @@ function plugin_projectbridge_ticket_update(Ticket $ticket)
574
574
function plugin_projectbridge_ticketask_add (TicketTask $ ticket_task )
575
575
{
576
576
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 );
579
578
}
580
579
}
581
580
582
-
583
-
584
-
585
581
/**
586
582
* Hook called before the update of a ticket task
587
583
* If possible, update the linked project task's progress percentage
@@ -592,11 +588,36 @@ function plugin_projectbridge_ticketask_add(TicketTask $ticket_task)
592
588
function plugin_projectbridge_ticketask_update (TicketTask $ ticket_task )
593
589
{
594
590
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 );
597
593
}
598
594
}
599
595
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
+
600
621
/**
601
622
* Hook called after showing a tab
602
623
*
0 commit comments