147 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| use Engelsystem\Models\User\User;
 | |
| 
 | |
| /**
 | |
|  * @param array $old_shift
 | |
|  * @param array $new_shift
 | |
|  */
 | |
| function mail_shift_change($old_shift, $new_shift)
 | |
| {
 | |
|     $users = ShiftEntries_by_shift($old_shift['SID']);
 | |
|     $old_room = Room($old_shift['RID']);
 | |
|     $new_room = Room($new_shift['RID']);
 | |
| 
 | |
|     $noticeable_changes = false;
 | |
| 
 | |
|     $message = __('A Shift you are registered on has changed:');
 | |
|     $message .= "\n";
 | |
| 
 | |
|     if ($old_shift['name'] != $new_shift['name']) {
 | |
|         $message .= sprintf(__('* Shift type changed from %s to %s'), $old_shift['name'], $new_shift['name']) . "\n";
 | |
|         $noticeable_changes = true;
 | |
|     }
 | |
| 
 | |
|     if ($old_shift['title'] != $new_shift['title']) {
 | |
|         $message .= sprintf(__('* Shift title changed from %s to %s'), $old_shift['title'], $new_shift['title']) . "\n";
 | |
|         $noticeable_changes = true;
 | |
|     }
 | |
| 
 | |
|     if ($old_shift['start'] != $new_shift['start']) {
 | |
|         $message .= sprintf(
 | |
|                 __('* Shift Start changed from %s to %s'),
 | |
|                 date('Y-m-d H:i', $old_shift['start']),
 | |
|                 date('Y-m-d H:i', $new_shift['start'])
 | |
|             ) . "\n";
 | |
|         $noticeable_changes = true;
 | |
|     }
 | |
| 
 | |
|     if ($old_shift['end'] != $new_shift['end']) {
 | |
|         $message .= sprintf(
 | |
|                 __('* Shift End changed from %s to %s'),
 | |
|                 date('Y-m-d H:i', $old_shift['end']),
 | |
|                 date('Y-m-d H:i', $new_shift['end'])
 | |
|             ) . "\n";
 | |
|         $noticeable_changes = true;
 | |
|     }
 | |
| 
 | |
|     if ($old_shift['RID'] != $new_shift['RID']) {
 | |
|         $message .= sprintf(__('* Shift Location changed from %s to %s'), $old_room['Name'], $new_room['Name']) . "\n";
 | |
|         $noticeable_changes = true;
 | |
|     }
 | |
| 
 | |
|     if (!$noticeable_changes) {
 | |
|         // There are no changes worth sending an E-Mail
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     $message .= "\n";
 | |
|     $message .= __('The updated Shift:') . "\n";
 | |
| 
 | |
|     $message .= $new_shift['name'] . "\n";
 | |
|     $message .= $new_shift['title'] . "\n";
 | |
|     $message .= date('Y-m-d H:i', $new_shift['start']) . ' - ' . date('H:i', $new_shift['end']) . "\n";
 | |
|     $message .= $new_room['Name'] . "\n";
 | |
| 
 | |
|     foreach ($users as $user) {
 | |
|         $user = (new User())->forceFill($user);
 | |
|         if ($user->settings->email_shiftinfo) {
 | |
|             engelsystem_email_to_user(
 | |
|                 $user,
 | |
|                 __('Your Shift has changed'),
 | |
|                 $message,
 | |
|                 true
 | |
|             );
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * @param array $shift
 | |
|  */
 | |
| function mail_shift_delete($shift)
 | |
| {
 | |
|     $users = ShiftEntries_by_shift($shift['SID']);
 | |
|     $room = Room($shift['RID']);
 | |
| 
 | |
|     $message = __('A Shift you are registered on was deleted:') . "\n";
 | |
| 
 | |
|     $message .= $shift['name'] . "\n";
 | |
|     $message .= $shift['title'] . "\n";
 | |
|     $message .= date('Y-m-d H:i', $shift['start']) . ' - ' . date('H:i', $shift['end']) . "\n";
 | |
|     $message .= $room['Name'] . "\n";
 | |
| 
 | |
|     foreach ($users as $user) {
 | |
|         $user = (new User())->forceFill($user);
 | |
|         if ($user->settings->email_shiftinfo) {
 | |
|             $userMessage = $message;
 | |
|             if ($shift['start'] < time() && !$user['freeloaded']) {
 | |
|                 $userMessage .= "\n" . __('Since the deleted shift was already done, we added a worklog entry instead, to keep your work hours correct.') . "\n";
 | |
|             }
 | |
| 
 | |
|             engelsystem_email_to_user($user, __('Your Shift was deleted'), $userMessage, true);
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * @param User  $user
 | |
|  * @param array $shift
 | |
|  */
 | |
| function mail_shift_assign($user, $shift)
 | |
| {
 | |
|     if (!$user->settings->email_shiftinfo) {
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     $room = Room($shift['RID']);
 | |
| 
 | |
|     $message = __('You have been assigned to a Shift:') . "\n";
 | |
|     $message .= $shift['name'] . "\n";
 | |
|     $message .= $shift['title'] . "\n";
 | |
|     $message .= date('Y-m-d H:i', $shift['start']) . ' - ' . date('H:i', $shift['end']) . "\n";
 | |
|     $message .= $room['Name'] . "\n";
 | |
| 
 | |
|     engelsystem_email_to_user($user, __('Assigned to Shift'), $message, true);
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * @param User  $user
 | |
|  * @param array $shift
 | |
|  */
 | |
| function mail_shift_removed($user, $shift)
 | |
| {
 | |
|     if (!$user->settings->email_shiftinfo) {
 | |
|         return;
 | |
|     }
 | |
| 
 | |
|     $room = Room($shift['RID']);
 | |
| 
 | |
|     $message = __('You have been removed from a Shift:') . "\n";
 | |
|     $message .= $shift['name'] . "\n";
 | |
|     $message .= $shift['title'] . "\n";
 | |
|     $message .= date('Y-m-d H:i', $shift['start']) . ' - ' . date('H:i', $shift['end']) . "\n";
 | |
|     $message .= $room['Name'] . "\n";
 | |
| 
 | |
|     engelsystem_email_to_user($user, __('Removed from Shift'), $message, true);
 | |
| }
 | 
