HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/brameda/brameda.nl/app/Komma/Shop/Orders/Kms/OrderMailService.php
<?php


namespace App\Komma\Shop\Orders\Kms;

use App\Komma\Auth\AuthMailService;
use App\Komma\Shop\Orders\Mail\OrderStatusUpdatedCustomer;
use App\Komma\Shop\Orders\Mail\OrderStatusUpdatedStaff;
use App\Komma\Shop\Orders\Models\Order;
use App\Komma\Users\Models\KmsUserRole;
use App\Komma\Users\Models\KmsUser;
use App\Komma\Users\Models\SiteUser;

/**
 * Class OrderMailService
 *
 * A service responsible for sending mails about orders to staff and customers
 *
 * @see AuthMailService
 * @package App\Komma\Shop\Orders\Kms
 */
class OrderMailService implements OrderMailServiceInterface
{
    /**
     * Mail a customer about their current order status
     *
     * @param Order $order
     * @param SiteUser $customer
     * @param string $additionalMessageText
     */
    public function mailCustomerAboutCurrentOrderStatus(Order $order, SiteUser $customer, string $additionalMessageText = '')
    {
        \Log::debug('OrderMailService: Notifying customer with email address "'.$customer->email.'" (shipping email) about order status change.');
        \Mail::to($customer->email)->send(new OrderStatusUpdatedCustomer($order, $customer, $additionalMessageText));
    }

    /**
     * Mail Staff about an order's current status
     *
     * @param Order $order
     * @param string $additionalMessageText
     */
    public function mailStaffAboutCurrentOrderStatus(Order $order, string $additionalMessageText = '')
    {
        $order->load(['customer']);
        KmsUser::whereIn('role', [KmsUserRole::Admin])->get(['id', 'email'])->each(function(KmsUser $staffMember) use($order, $additionalMessageText) {
            \Log::debug('OrderMailService: Notifying staffMember with email address "'.$staffMember->email.'" about order status change.');
            \Mail::to($staffMember->email)->send(new OrderStatusUpdatedStaff($order, $order->customer, $staffMember, $additionalMessageText));
        });
    }
}