PluginProbe
ShiftController Employee Shift Scheduling / trunk
ShiftController Employee Shift Scheduling vtrunk
4.9.97 4.9.96 4.9.95 4.9.74 4.9.75 4.9.76 4.9.77 4.9.78 4.9.84 4.9.85 4.9.87 4.9.91 4.9.92 trunk 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 3.2.4 All 38 releases
← All changes | sh4/api/api.php +43 -0 4.9.74trunk View file →
@@ -6,8 +6,9 @@
6 6 public $appQuery;
7 7
8 8 public function __construct(
9 9 HC3_Hooks $hooks,
10 + HC3_Dic $dic,
10 11 HC3_Time $t,
11 12
12 13 HC3_IPermission $permission,
13 14 HC3_Translate $translate,
@@ -28,8 +29,9 @@
28 29 SH4_Shifts_Command $shiftsCommand
29 30 )
30 31 {
31 32 $this->t = $t;
33 + $this->dic = $dic;
32 34 $this->translate = $translate;
33 35 $this->permission = $hooks->wrap( $permission );
34 36
35 37 $this->employeesQuery = $hooks->wrap( $employeesQuery );
@@ -491,8 +493,28 @@
491 493
492 494 $this->shiftsCommand->draft( $shift );
493 495 }
494 496
497 + if (class_exists('SH4_CFields_Model') or class_exists('SH4_CFields2_Model')) {
498 + $cfieldsQuery = $this->dic->make('SH4_CFields_Query');
499 + $cfieldsCommand = $this->dic->make('SH4_CFields_Command');
500 + $cal = $calendar;
501 + $cfields = $cfieldsQuery->findByCalendar($cal);
502 +
503 + $cvals = array();
504 + foreach ($cfields as $cfield) {
505 + $cfieldName = $cfield->getName();
506 + $cfieldId = $cfield->getId();
507 + if (isset($values[$cfieldName])) {
508 + $cvals[$cfieldId] = $values[$cfieldName];
509 + }
510 + }
511 +
512 + if ($cvals) {
513 + $cfieldsCommand->updateShift($shift, $cvals);
514 + }
515 + }
516 +
495 517 return $shiftId;
496 518 }
497 519
498 520 public function shiftsDeleteById( $id )
@@ -674,8 +696,29 @@
674 696
675 697 if( $newStatus && (SH4_Shifts_Model::STATUS_DRAFT == $newStatus) && ( ! $shift->isDraft() ) ){
676 698 $this->shiftsCommand->unpublish( $shift );
677 699 }
700 +
701 + if (class_exists('SH4_CFields_Model') or class_exists('SH4_CFields2_Model')) {
702 + $cfieldsQuery = $this->dic->make('SH4_CFields_Query');
703 + $cfieldsCommand = $this->dic->make('SH4_CFields_Command');
704 + $cal = $newCalendar ? $newCalendar : $calendar;
705 + $cfields = $cfieldsQuery->findByCalendar($cal);
706 +
707 +
708 + $cvals = array();
709 + foreach ($cfields as $cfield) {
710 + $cfieldName = $cfield->getName();
711 + $cfieldId = $cfield->getId();
712 + if (isset($values[$cfieldName])) {
713 + $cvals[$cfieldId] = $values[$cfieldName];
714 + }
715 + }
716 +
717 + if ($cvals) {
718 + $cfieldsCommand->updateShift($shift, $cvals);
719 + }
720 + }
678 721
679 722 return;
680 723 }
681 724