Skip to content

Commit

Permalink
2.6.14
Browse files Browse the repository at this point in the history
  • Loading branch information
dmitrii-fediuk committed May 9, 2017
1 parent 60de410 commit 57d9e85
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 4 deletions.
39 changes: 36 additions & 3 deletions Payment/Observer/DataProvider/SearchResult.php
@@ -1,13 +1,15 @@
<?php
namespace Df\Payment\Observer\DataProvider;
use Df\Framework\Plugin\View\Element\UiComponent\DataProvider\DataProvider as Plugin;
use Df\Payment\Method as M;
use Magento\Framework\Api\Search\SearchResult as ApiSearchResult;
use Magento\Framework\Api\Search\SearchResultInterface as ISearchResult;
use Magento\Framework\Event\Observer as Ob;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider as Provider;
use Magento\Framework\View\Element\UiComponent\DataProvider\Document;
use Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult as UiSearchResult;
use Magento\Payment\Model\Method\Substitution;
use Magento\Sales\Model\Order as O;
use Magento\Sales\Model\ResourceModel\Order\Creditmemo\Grid\Collection as CreditmemoGC;
use Magento\Sales\Model\ResourceModel\Order\Grid\Collection as OrderGC;
Expand Down Expand Up @@ -52,15 +54,46 @@ function execute(Ob $o) {
df_map(function(Document $item) use($cacheKey, $prop) {
/** @var string|null $methodCode */
if (($methodCode = $item[$prop]) && df_starts_with($methodCode, 'dfe_')) {
/**
* 2017-05-09
* Как оказалось, наличие приставки «dfe_» ешё не гарантирует,
* что @uses dfpm() (вызываемый ниже опосредованно через dfpm_title())
* действительно вернёт наследника @see \Df\Payment\Method
* Возможна ситуация, когда админтратор установил какой-либо из моих патёжных модулей,
* сделал платёж посредством него, а затем либо удалил модуль,
* либо из-за каких-то некорректных действий модуль стал отключенным,
* и вот тогда M2 вернёт не наследника @see \Df\Payment\Method,
* а экземпляр класса @see \Magento\Payment\Model\Method\Substitution:
* «How is @see \Magento\Payment\Model\Method\Substitution implemented and used?»
* https://mage2.pro/t/3924
* 1) @see \Magento\Sales\Model\Order\Payment\Info::getMethodInstance()
* try {
* $instance = $this->paymentData->getMethodInstance($this->getMethod());
* } catch (\UnexpectedValueException $e) {
* $instance = $this->paymentData->getMethodInstance(Substitution::CODE);
* }
* https://github.com/magento/magento2/blob/2.1.6/app/code/Magento/Sales/Model/Order/Payment/Info.php#L113-L117
* 2) @see \Magento\Payment\Model\Info::getMethodInstance()
* try {
* $instance = $this->_paymentData->getMethodInstance($this->getMethod());
* } catch (\UnexpectedValueException $e) {
* $instance = $this->_paymentData->getMethodInstance(Method\Substitution::CODE);
* }
* https://github.com/magento/magento2/blob/2.1.6/app/code/Magento/Payment/Model/Info.php#L106-L110
*/
/** @var int $id */
$id = $item['entity_id'];
// 2016-07-29
// Эта операция очень ресурсоёмка:
// для каждой строки таблицы заказов она делает кучу запросов к базе данных.
// Поэтому кэшируем результаты в постоянном кэше.
$item[$prop] = df_cache_get_simple([$cacheKey, $id], function() use ($id) {return
/** @var O $o */df_cc_br(dfpm_title($o = df_order($id)), dfp_choice($o)->title())
;});
$item[$prop] = df_cache_get_simple([$cacheKey, $id], function() use ($id) {
/** @var O $o */
$o = df_order($id);
/** @var M|Substitution $m */
$m = dfpm($o);
return !dfp_my($m) ? $m->getTitle() : df_cc_br(dfpm_title($m), dfp_choice($o)->title());
});
}
}, $result);
}
Expand Down
2 changes: 1 addition & 1 deletion composer.json
@@ -1,6 +1,6 @@
{
"name": "mage2pro/core"
,"version": "2.6.13"
,"version": "2.6.14"
,"description": "Mage2.PRO core package."
,"type": "magento2-module"
,"homepage": "https://mage2.pro"
Expand Down

0 comments on commit 57d9e85

Please sign in to comment.