File: D:/HostingSpaces/blijegasten/blijegasten.be/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\Shop\Vies\ViesService;
use App\Komma\Users\Genders;
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 $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)
{
$this->order = $order;
// $this->staffMember = $staffMember;
$this->regionInfo = app(RegionInfoInterface::class);
// Set the country model
$this->order->invoice_country = $this->regionInfo::getInstance($this->order->invoice_country_iso2);
if (!empty($this->order->shipping_country_iso2)) {
$this->order->shipping_country = $this->regionInfo::getInstance($this->order->shipping_country_iso2);
}
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
if (!app()->environment('production')) {
$this->order->status = 3;
}
// Set email subject
$this->subject(__('shop/orders.mail.'.$this->order->status.'.staff.subject', [
'order_number' => $this->order->order_number,
'order_status' => __('shop/orders.status.'.$this->order->status),
]));
//Prepare mail view data
$data = [
'order' => $this->order,
'showReceipt' => true,
'subject' => __('shop/orders.mail.'.$this->order->status.'.staff.subject', [
'order_number' => $this->order->order_number,
'order_status' => __('shop/orders.status.'.$this->order->status),
]),
'regionInfo' => $this->regionInfo,
];
if(!empty($this->order->invoice_vat_number)) {
// If business, then validate BTW with Vies
/** @var ViesService $viewService */
$viewService = app()->make(ViesService::class);
$viewResult = $viewService->validateVatNumber($this->order->invoice_vat_number);
$data['vies'] = (object)[
'vies_valid' => !empty($viewResult) ? true : false,
'vies_result' => $viewResult
];
}
//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;
// }
return $this->view('emails.shop.orderUpdateStaff', $data);
}
}