Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CreationService.php
Go to the documentation of this file.
1 <?php
7 
15 use Psr\Log\LoggerInterface;
16 
21 {
25  private $caseManagement;
26 
30  private $caseUpdatingServiceFactory;
31 
35  private $gateway;
36 
40  private $createGuaranteeAbility;
41 
45  private $logger;
46 
56  public function __construct(
57  CaseManagementInterface $caseManagement,
58  UpdatingServiceFactory $caseUpdatingServiceFactory,
59  Gateway $gateway,
60  CreateGuaranteeAbility $createGuaranteeAbility,
61  LoggerInterface $logger
62  ) {
63  $this->caseManagement = $caseManagement;
64  $this->caseUpdatingServiceFactory = $caseUpdatingServiceFactory;
65  $this->gateway = $gateway;
66  $this->createGuaranteeAbility = $createGuaranteeAbility;
67  $this->logger = $logger;
68  }
69 
73  public function createForOrder($orderId)
74  {
75  if (!$this->createGuaranteeAbility->isAvailable($orderId)) {
76  return false;
77  }
78 
79  $caseEntity = $this->caseManagement->getByOrderId($orderId);
80 
81  try {
82  $disposition = $this->gateway->submitCaseForGuarantee($caseEntity->getCaseId());
83  } catch (GatewayException $e) {
84  $this->logger->error($e->getMessage());
85  return false;
86  }
87 
88  $updatingService = $this->caseUpdatingServiceFactory->create('guarantees/creation');
89  $data = [
90  'caseId' => $caseEntity->getCaseId(),
91  'guaranteeDisposition' => $disposition
92  ];
93  $updatingService->update($caseEntity, $data);
94 
95  return true;
96  }
97 }
__construct(CaseManagementInterface $caseManagement, UpdatingServiceFactory $caseUpdatingServiceFactory, Gateway $gateway, CreateGuaranteeAbility $createGuaranteeAbility, LoggerInterface $logger)
$logger