Skip to content

Commit ce20c0a

Browse files
author
Anton Evers
committed
Refactor invoice id persistance and retrieval to be more like the get and setOrder
1 parent 9145209 commit ce20c0a

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

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

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
use Magento\Framework\App\ObjectManager;
1313
use Magento\Framework\Pricing\PriceCurrencyInterface;
1414
use Magento\Sales\Api\Data\CreditmemoInterface;
15-
use Magento\Sales\Api\InvoiceRepositoryInterface;
1615
use Magento\Sales\Model\AbstractModel;
1716
use Magento\Sales\Model\EntityInterface;
17+
use Magento\Sales\Model\InvoiceFactory;
1818

1919
/**
2020
* Order creditmemo model
@@ -117,9 +117,9 @@ class Creditmemo extends AbstractModel implements EntityInterface, CreditmemoInt
117117
protected $priceCurrency;
118118

119119
/**
120-
* @var InvoiceRepository
120+
* @var InvoiceFactory
121121
*/
122-
private $invoiceRepository;
122+
private $invoiceFactory;
123123

124124
/**
125125
* @param \Magento\Framework\Model\Context $context
@@ -137,7 +137,7 @@ class Creditmemo extends AbstractModel implements EntityInterface, CreditmemoInt
137137
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
138138
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
139139
* @param array $data
140-
* @param InvoiceRepository $invoiceRepository
140+
* @param InvoiceFactory $invoiceFactory
141141
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
142142
*/
143143
public function __construct(
@@ -156,7 +156,7 @@ public function __construct(
156156
\Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
157157
\Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
158158
array $data = [],
159-
InvoiceRepository $invoiceRepository = null
159+
InvoiceFactory $invoiceFactory = null
160160
) {
161161
$this->_creditmemoConfig = $creditmemoConfig;
162162
$this->_orderFactory = $orderFactory;
@@ -166,7 +166,7 @@ public function __construct(
166166
$this->_commentFactory = $commentFactory;
167167
$this->_commentCollectionFactory = $commentCollectionFactory;
168168
$this->priceCurrency = $priceCurrency;
169-
$this->invoiceRepository = $invoiceRepository ?: ObjectManager::getInstance()->get(InvoiceRepositoryInterface::class);
169+
$this->invoiceFactory = $invoiceFactory ?: ObjectManager::getInstance()->get(InvoiceFactory::class);
170170
parent::__construct(
171171
$context,
172172
$registry,
@@ -390,7 +390,7 @@ public function canRefund()
390390
public function getInvoice()
391391
{
392392
if (!$this->getData('invoice') instanceof \Magento\Sales\Model\Order\Invoice && $this->getInvoiceId()) {
393-
$this->setInvoice($this->invoiceRepository->get($this->getInvoiceId()));
393+
$this->setInvoice($this->invoiceFactory->create()->load($this->getInvoiceId()));
394394
}
395395
return $this->getData('invoice');
396396
}
@@ -404,7 +404,6 @@ public function getInvoice()
404404
public function setInvoice(Invoice $invoice)
405405
{
406406
$this->setData('invoice', $invoice);
407-
$this->setInvoiceId($invoice->getId());
408407
return $this;
409408
}
410409

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object)
5050
$object->setBillingAddressId($object->getOrder()->getBillingAddress()->getId());
5151
}
5252

53+
if (!$object->getInvoiceId() && $object->getInvoice()) {
54+
$object->setInvoiceId($object->getInvoice()->getId());
55+
}
56+
5357
return parent::_beforeSave($object);
5458
}
5559
}

0 commit comments

Comments
 (0)