Skip to content

Commit a1432b5

Browse files
author
Michael Logvin
committed
Merge branch 'm2ce_public_dev' into MAGETWO-33528
2 parents 3f0412c + 1b0c165 commit a1432b5

21 files changed

+297
-120
lines changed

app/code/Magento/Customer/Model/Customer.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1034,6 +1034,12 @@ public function validate()
10341034
$errors[] = __('Gender is required.');
10351035
}
10361036

1037+
$transport = new \Magento\Framework\Object(
1038+
['errors' => $errors]
1039+
);
1040+
$this->_eventManager->dispatch('customer_validate' , ['customer' => $this, 'transport' => $transport]);
1041+
$errors = $transport->getErrors();
1042+
10371043
if (empty($errors)) {
10381044
return true;
10391045
}

app/code/Magento/Sales/Model/Order.php

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -920,13 +920,16 @@ public function getShippingAddress()
920920
* Order state setter.
921921
* If status is specified, will add order status history with specified comment
922922
* the setData() cannot be overridden because of compatibility issues with resource model
923+
* By default allows to set any state. Can also update status to default or specified value
924+
* Complete and closed states are encapsulated intentionally
923925
*
924926
* @param string $state
925927
* @param string|bool $status
926928
* @param string $comment
927929
* @param bool $isCustomerNotified
928930
* @param bool $shouldProtectState
929931
* @return \Magento\Sales\Model\Order
932+
* @throws \Magento\Framework\Exception\LocalizedException
930933
*/
931934
public function setState(
932935
$state,
@@ -935,29 +938,7 @@ public function setState(
935938
$isCustomerNotified = null,
936939
$shouldProtectState = true
937940
) {
938-
return $this->_setState($state, $status, $comment, $isCustomerNotified, $shouldProtectState);
939-
}
940941

941-
/**
942-
* Order state protected setter.
943-
* By default allows to set any state. Can also update status to default or specified value
944-
* Complete and closed states are encapsulated intentionally, see the _checkState()
945-
*
946-
* @param string $state
947-
* @param string|bool $status
948-
* @param string $comment
949-
* @param bool $isCustomerNotified
950-
* @param bool $shouldProtectState
951-
* @return $this
952-
* @throws \Magento\Framework\Exception\LocalizedException
953-
*/
954-
protected function _setState(
955-
$state,
956-
$status = false,
957-
$comment = '',
958-
$isCustomerNotified = null,
959-
$shouldProtectState = false
960-
) {
961942
// attempt to set the specified state
962943
if ($shouldProtectState) {
963944
if ($this->isStateProtected($state)) {
@@ -966,17 +947,29 @@ protected function _setState(
966947
);
967948
}
968949
}
969-
$this->setData('state', $state);
950+
951+
$transport = new \Magento\Framework\Object(
952+
[
953+
'state' => $state,
954+
'status' => $status,
955+
'comment' => $comment,
956+
'is_customer_notified' => $isCustomerNotified
957+
]
958+
);
959+
960+
$this->_eventManager->dispatch('sales_order_state_change_before', array('order' => $this, 'transport' => $transport));
961+
$status = $transport->getStatus();
962+
$this->setData('state', $transport->getState());
970963

971964
// add status history
972965
if ($status) {
973966
if ($status === true) {
974-
$status = $this->getConfig()->getStateDefaultStatus($state);
967+
$status = $this->getConfig()->getStateDefaultStatus($transport->getState());
975968
}
976969
$this->setStatus($status);
977-
$history = $this->addStatusHistoryComment($comment, false);
970+
$history = $this->addStatusHistoryComment($transport->getComment(), false);
978971
// no sense to set $status again
979-
$history->setIsCustomerNotified($isCustomerNotified);
972+
$history->setIsCustomerNotified($transport->getIsCustomerNotified());
980973
}
981974
return $this;
982975
}
@@ -1167,7 +1160,7 @@ public function registerCancellation($comment = '', $graceful = true)
11671160
$this->setTotalCanceled($this->getGrandTotal() - $this->getTotalPaid());
11681161
$this->setBaseTotalCanceled($this->getBaseGrandTotal() - $this->getBaseTotalPaid());
11691162

1170-
$this->_setState($cancelState, true, $comment);
1163+
$this->setState($cancelState, true, $comment, null, false);
11711164
} elseif (!$graceful) {
11721165
throw new \Magento\Framework\Exception\LocalizedException(__('We cannot cancel this order.'));
11731166
}

app/code/Magento/Sales/Model/Order/Email/Sender/CreditmemoCommentSender.php

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Magento\Sales\Model\Order\Email\Container\Template;
1212
use Magento\Sales\Model\Order\Email\NotifySender;
1313
use Magento\Sales\Model\Order\Address\Renderer;
14+
use Magento\Framework\Event\ManagerInterface;
1415

1516
/**
1617
* Class CreditmemoCommentSender
@@ -22,22 +23,32 @@ class CreditmemoCommentSender extends NotifySender
2223
*/
2324
protected $addressRenderer;
2425

26+
/**
27+
* Application Event Dispatcher
28+
*
29+
* @var ManagerInterface
30+
*/
31+
protected $eventManager;
32+
2533
/**
2634
* @param Template $templateContainer
2735
* @param CreditmemoCommentIdentity $identityContainer
2836
* @param Order\Email\SenderBuilderFactory $senderBuilderFactory
2937
* @param \Psr\Log\LoggerInterface $logger
3038
* @param Renderer $addressRenderer
39+
* @param ManagerInterface $eventManager
3140
*/
3241
public function __construct(
3342
Template $templateContainer,
3443
CreditmemoCommentIdentity $identityContainer,
3544
\Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory,
3645
\Psr\Log\LoggerInterface $logger,
37-
Renderer $addressRenderer
46+
Renderer $addressRenderer,
47+
ManagerInterface $eventManager
3848
) {
3949
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger);
4050
$this->addressRenderer = $addressRenderer;
51+
$this->eventManager = $eventManager;
4152
}
4253

4354
/**
@@ -57,18 +68,27 @@ public function send(Creditmemo $creditmemo, $notify = true, $comment = '')
5768
$formattedShippingAddress = '';
5869
}
5970
$formattedBillingAddress = $this->addressRenderer->format($order->getBillingAddress(), 'html');
60-
$this->templateContainer->setTemplateVars(
61-
[
62-
'order' => $order,
63-
'creditmemo' => $creditmemo,
64-
'comment' => $comment,
65-
'billing' => $order->getBillingAddress(),
66-
'store' => $order->getStore(),
67-
'formattedShippingAddress' => $formattedShippingAddress,
68-
'formattedBillingAddress' => $formattedBillingAddress,
71+
72+
$transport = new \Magento\Framework\Object(
73+
['template_vars' =>
74+
[
75+
'order' => $order,
76+
'creditmemo' => $creditmemo,
77+
'comment' => $comment,
78+
'billing' => $order->getBillingAddress(),
79+
'store' => $order->getStore(),
80+
'formattedShippingAddress' => $formattedShippingAddress,
81+
'formattedBillingAddress' => $formattedBillingAddress,
82+
]
6983
]
7084
);
7185

86+
$this->eventManager->dispatch(
87+
'email_creditmemo_comment_set_template_vars_before', array('sender' => $this, 'transport' => $transport)
88+
);
89+
90+
$this->templateContainer->setTemplateVars($transport->getTemplateVars());
91+
7292
return $this->checkAndSend($order, $notify);
7393
}
7494
}

app/code/Magento/Sales/Model/Order/Email/Sender/CreditmemoSender.php

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Magento\Sales\Model\Order\Email\Sender;
1414
use Magento\Sales\Model\Resource\Order\Creditmemo as CreditmemoResource;
1515
use Magento\Sales\Model\Order\Address\Renderer;
16+
use Magento\Framework\Event\ManagerInterface;
1617

1718
/**
1819
* Class CreditmemoSender
@@ -43,6 +44,13 @@ class CreditmemoSender extends Sender
4344
*/
4445
protected $addressRenderer;
4546

47+
/**
48+
* Application Event Dispatcher
49+
*
50+
* @var ManagerInterface
51+
*/
52+
protected $eventManager;
53+
4654
/**
4755
* @param Template $templateContainer
4856
* @param CreditmemoIdentity $identityContainer
@@ -52,6 +60,7 @@ class CreditmemoSender extends Sender
5260
* @param CreditmemoResource $creditmemoResource
5361
* @param \Magento\Framework\App\Config\ScopeConfigInterface $globalConfig
5462
* @param Renderer $addressRenderer
63+
* @param ManagerInterface $eventManager
5564
*/
5665
public function __construct(
5766
Template $templateContainer,
@@ -61,13 +70,15 @@ public function __construct(
6170
PaymentHelper $paymentHelper,
6271
CreditmemoResource $creditmemoResource,
6372
\Magento\Framework\App\Config\ScopeConfigInterface $globalConfig,
64-
Renderer $addressRenderer
73+
Renderer $addressRenderer,
74+
ManagerInterface $eventManager
6575
) {
6676
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger);
6777
$this->paymentHelper = $paymentHelper;
6878
$this->creditmemoResource = $creditmemoResource;
6979
$this->globalConfig = $globalConfig;
7080
$this->addressRenderer = $addressRenderer;
81+
$this->eventManager = $eventManager;
7182
}
7283

7384
/**
@@ -100,19 +111,28 @@ public function send(Creditmemo $creditmemo, $forceSyncMode = false)
100111

101112
$formattedBillingAddress = $this->addressRenderer->format($order->getBillingAddress(), 'html');
102113

103-
$this->templateContainer->setTemplateVars(
104-
[
105-
'order' => $order,
106-
'creditmemo' => $creditmemo,
107-
'comment' => $creditmemo->getCustomerNoteNotify() ? $creditmemo->getCustomerNote() : '',
108-
'billing' => $order->getBillingAddress(),
109-
'payment_html' => $this->getPaymentHtml($order),
110-
'store' => $order->getStore(),
111-
'formattedShippingAddress' => $formattedShippingAddress,
112-
'formattedBillingAddress' => $formattedBillingAddress,
114+
$transport = new \Magento\Framework\Object(
115+
['template_vars' =>
116+
[
117+
'order' => $order,
118+
'creditmemo' => $creditmemo,
119+
'comment' => $creditmemo->getCustomerNoteNotify()
120+
? $creditmemo->getCustomerNote() : '',
121+
'billing' => $order->getBillingAddress(),
122+
'payment_html' => $this->getPaymentHtml($order),
123+
'store' => $order->getStore(),
124+
'formattedShippingAddress' => $formattedShippingAddress,
125+
'formattedBillingAddress' => $formattedBillingAddress
126+
]
113127
]
114128
);
115129

130+
$this->eventManager->dispatch(
131+
'email_creditmemo_set_template_vars_before', array('sender' => $this, 'transport' => $transport)
132+
);
133+
134+
$this->templateContainer->setTemplateVars($transport->getTemplateVars());
135+
116136
if ($this->checkAndSend($order)) {
117137
$creditmemo->setEmailSent(true);
118138

app/code/Magento/Sales/Model/Order/Email/Sender/InvoiceCommentSender.php

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Magento\Sales\Model\Order\Email\NotifySender;
1212
use Magento\Sales\Model\Order\Invoice;
1313
use Magento\Sales\Model\Order\Address\Renderer;
14+
use Magento\Framework\Event\ManagerInterface;
1415

1516
/**
1617
* Class InvoiceCommentSender
@@ -22,22 +23,32 @@ class InvoiceCommentSender extends NotifySender
2223
*/
2324
protected $addressRenderer;
2425

26+
/**
27+
* Application Event Dispatcher
28+
*
29+
* @var ManagerInterface
30+
*/
31+
protected $eventManager;
32+
2533
/**
2634
* @param Template $templateContainer
2735
* @param InvoiceCommentIdentity $identityContainer
2836
* @param Order\Email\SenderBuilderFactory $senderBuilderFactory
2937
* @param \Psr\Log\LoggerInterface $logger
3038
* @param Renderer $addressRenderer
39+
* @param ManagerInterface $eventManager
3140
*/
3241
public function __construct(
3342
Template $templateContainer,
3443
InvoiceCommentIdentity $identityContainer,
3544
\Magento\Sales\Model\Order\Email\SenderBuilderFactory $senderBuilderFactory,
3645
\Psr\Log\LoggerInterface $logger,
37-
Renderer $addressRenderer
46+
Renderer $addressRenderer,
47+
ManagerInterface $eventManager
3848
) {
3949
parent::__construct($templateContainer, $identityContainer, $senderBuilderFactory, $logger);
4050
$this->addressRenderer = $addressRenderer;
51+
$this->eventManager = $eventManager;
4152
}
4253

4354
/**
@@ -57,17 +68,27 @@ public function send(Invoice $invoice, $notify = true, $comment = '')
5768
$formattedShippingAddress = '';
5869
}
5970
$formattedBillingAddress = $this->addressRenderer->format($order->getBillingAddress(), 'html');
60-
$this->templateContainer->setTemplateVars(
61-
[
62-
'order' => $order,
63-
'invoice' => $invoice,
64-
'comment' => $comment,
65-
'billing' => $order->getBillingAddress(),
66-
'store' => $order->getStore(),
67-
'formattedShippingAddress' => $formattedShippingAddress,
68-
'formattedBillingAddress' => $formattedBillingAddress,
71+
72+
$transport = new \Magento\Framework\Object(
73+
['template_vars' =>
74+
[
75+
'order' => $order,
76+
'invoice' => $invoice,
77+
'comment' => $comment,
78+
'billing' => $order->getBillingAddress(),
79+
'store' => $order->getStore(),
80+
'formattedShippingAddress' => $formattedShippingAddress,
81+
'formattedBillingAddress' => $formattedBillingAddress,
82+
]
6983
]
7084
);
85+
86+
$this->eventManager->dispatch(
87+
'email_invoice_comment_set_template_vars_before', array('sender' => $this, 'transport' => $transport)
88+
);
89+
90+
$this->templateContainer->setTemplateVars($transport->getTemplateVars());
91+
7192
return $this->checkAndSend($order, $notify);
7293
}
7394
}

0 commit comments

Comments
 (0)