22 private $paymentHelper;
27 private $invoiceResource;
32 private $globalConfig;
37 private $eventManager;
69 $this->paymentHelper = $paymentHelper;
70 $this->invoiceResource = $invoiceResource;
71 $this->globalConfig = $globalConfig;
72 $this->eventManager = $eventManager;
97 $forceSyncMode =
false 101 if (!$this->globalConfig->getValue(
'sales_email/general/async_sending') || $forceSyncMode) {
105 'comment' => $comment ? $comment->getComment() :
'',
106 'billing' =>
$order->getBillingAddress(),
107 'payment_html' => $this->getPaymentHtml(
$order),
108 'store' =>
$order->getStore(),
112 $transportObject =
new DataObject($transport);
117 $this->eventManager->dispatch(
118 'email_invoice_set_template_vars_before',
119 [
'sender' => $this,
'transport' => $transportObject->getData(),
'transportObject' => $transportObject]
122 $this->templateContainer->setTemplateVars($transportObject->getData());
124 if ($this->checkAndSend(
$order)) {
127 $this->invoiceResource->saveAttribute(
$invoice, [
'send_email',
'email_sent']);
134 $this->invoiceResource->saveAttribute(
$invoice,
'email_sent');
137 $this->invoiceResource->saveAttribute(
$invoice,
'send_email');
151 return $this->paymentHelper->getInfoBlockHtml(
153 $this->identityContainer->getStore()->getStoreId()
send(\Magento\Sales\Api\Data\OrderInterface $order, \Magento\Sales\Api\Data\InvoiceInterface $invoice, \Magento\Sales\Api\Data\InvoiceCommentCreationInterface $comment=null, $forceSyncMode=false)
__construct(\Magento\Sales\Model\Order\Email\Container\Template $templateContainer, \Magento\Sales\Model\Order\Email\Container\InvoiceIdentity $identityContainer, \Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory, \Psr\Log\LoggerInterface $logger, \Magento\Sales\Model\Order\Address\Renderer $addressRenderer, \Magento\Payment\Helper\Data $paymentHelper, \Magento\Sales\Model\ResourceModel\Order\Invoice $invoiceResource, \Magento\Framework\App\Config\ScopeConfigInterface $globalConfig, \Magento\Framework\Event\ManagerInterface $eventManager)
getFormattedShippingAddress($order)
getFormattedBillingAddress($order)