![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/app/code/Cnc/Sales/Setup/Patch/Data/ |
<?php /** * Copyright (c) 2020 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved. * https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * Cnc * Radosław Stępień <[email protected]> <[email protected]> */ namespace Cnc\Sales\Setup\Patch\Data; use Cnc\Sales\Model\Config; use Exception; use Magento\Framework\Exception\AlreadyExistsException; use Magento\Framework\Setup\Patch\DataPatchInterface; use Magento\Sales\Model\Order; use Magento\Sales\Model\Order\StatusFactory; use Magento\Sales\Model\ResourceModel\Order\StatusFactory as StatusResourceFactory; class CreateProcessingStateOrderStatuses implements DataPatchInterface { const STATUSES_TO_IMPORT = [ [ 'code' => Config::ORDER_STATUS_PAIEMENT_RECU_CODE, 'label' => Config::ORDER_STATUS_PAIEMENT_RECU_LABEL ], [ 'code' => Config::ORDER_STATUS_EXPEDIE_PAYE_CODE, 'label' => Config::ORDER_STATUS_EXPEDIE_PAYE_LABEL ], [ 'code' => Config::ORDER_STATUS_EXPEDIE_PAIEMENT_30J_CODE, 'label' => Config::ORDER_STATUS_EXPEDIE_PAIEMENT_30J_LABEL ], [ 'code' => Config::ORDER_STATUS_EXPEDIE_PAIEMENT_RECEP_FACTURE_CODE, 'label' => Config::ORDER_STATUS_EXPEDIE_PAIEMENT_RECEP_FACTURE_LABEL ], ]; /** * Status Factory * * @var StatusFactory */ private $statusFactory; /** * Status Resource Factory * * @var StatusResourceFactory */ private $statusResourceFactory; /** * @param StatusFactory $statusFactory * @param StatusResourceFactory $statusResourceFactory */ public function __construct( StatusFactory $statusFactory, StatusResourceFactory $statusResourceFactory ) { $this->statusFactory = $statusFactory; $this->statusResourceFactory = $statusResourceFactory; } /** * @return string[] */ public static function getDependencies() { return []; } /** * @return string[] */ public function getAliases() { return []; } /** * @return CreateProcessingStateOrderStatuses|void * @throws Exception */ public function apply() { $this->addNewProcessingStatuses(); } /** * @return void * * @throws Exception|Exception */ protected function addNewProcessingStatuses() { $statusResource = $this->statusResourceFactory->create(); foreach (self::STATUSES_TO_IMPORT as $statusToImport) { $status = $this->statusFactory->create(); $status->setData([ 'status' => $statusToImport['code'], 'label' => $statusToImport['label'], ]); try { $statusResource->save($status); } catch (AlreadyExistsException $exception) { return; } $status->assignState(Order::STATE_PROCESSING, false, true); } } }