File: D:/HostingSpaces/SBogers10/farmfun.komma.pro/app/Komma/Shop/Orders/Mail/OrderStatusUpdatedStaff.php
<?php
namespace App\Komma\Shop\Orders\Mail;
use App\Komma\Globalization\RegionInfo;
use App\Komma\Globalization\RegionInfoInterface;
use App\Komma\Shop\Orders\Models\Order;
use App\Komma\Shop\Orders\OrderStatus;
use App\Komma\Users\Models\KmsUser;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class OrderStatusUpdatedStaff extends Mailable
{
use Queueable, SerializesModels;
/** @var Order */
private $order;
/**
* @var KmsUser
*/
private $staffMember;
/** @var RegionInfo */
private $regionInfo;
/**
* Create a new message instance.
*
* @param Order $order
* @param KmsUser $staffMember
* @see OrderStatus
*/
public function __construct(Order $order, KmsUser $staffMember)
{
$this->order = $order;
$this->staffMember = $staffMember;
$this->regionInfo = app(RegionInfoInterface::class);
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
//Prepare mail view data
$data = [
'showTotal' => true,
'order' => $this->order,
'greeting' => __('site/form.form.salutation.informal.'.$this->order->customer->gender.'.with_salutation.long').' '.$this->staffMember->first_name.' '.$this->staffMember->last_name,
'body' => __('shop/orders.mail.'.$this->order->status.'.staff.body', ['order_number' => $this->order->order_number]),
'button_text' => __('shop/orders.mail.'.$this->order->status.'.staff.button_text'),
'closure' => __('shop/orders.mail.'.$this->order->status.'.staff.closure'),
'name' => config('site.company.name'),
'regionInfo' => $this->regionInfo,
];
//On certain order statuses we include order details.
$data['show_order_details'] = (
$this->order->status === OrderStatus::PENDING ||
$this->order->status === OrderStatus::AWAITING_FULFILLMENT
);
//Add the button url to the view parameters
switch ($this->order->status) {
case OrderStatus::DISPUTED:
$data['button_url'] = route('orders.show', ['order' => $this->order]);
break;
case OrderStatus::AWAITING_FULFILLMENT:
$data['button_url'] = route('orders.show', ['order' => $this->order]);
break;
}
$this->subject(__('shop/orders.mail.'.$this->order->status.'.staff.subject', [
'order_number' => $this->order->order_number,
'order_status' => __('shop/orders.status.'.$this->order->status),
]));
return $this->view('emails.shop.orderUpdateStaff', $data);
}
}