6 lines
1.3 KiB
PHP
6 lines
1.3 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
namespace Esun\LegacyOrder\Controller\Adminhtml\Import;
|
|
use Esun\LegacyOrder\Model\LegacyOrderImporter;use Magento\Backend\App\Action;use Magento\Framework\Controller\ResultFactory;
|
|
class Run extends Action {public const ADMIN_RESOURCE='Esun_LegacyOrder::import';public function __construct(Action\Context$c,private readonly LegacyOrderImporter$importer){parent::__construct($c);}public function execute(){$d=(array)$this->_getSession()->getLegacyOrderImport();try{if(empty($d['path']))throw new \RuntimeException('Validate a CSV file first.');$s=$this->importer->process($d['path'],(string)$d['source_code'],(int)$d['website_id'],(string)$d['currency'],true);if($s['errors'])throw new \RuntimeException(implode('; ',$s['errors']));$this->messageManager->addSuccessMessage(__("Imported %1 orders (%2 created, %3 updated), %4 items. Linked: %5; unlinked: %6.",$s['orders'],$s['created'],$s['updated'],$s['items'],$s['linked'],$s['unlinked']));$this->_getSession()->unsLegacyOrderImport();return$this->resultFactory->create(ResultFactory::TYPE_REDIRECT)->setPath('esun_legacy_order/order/index');}catch(\Throwable$e){$this->messageManager->addErrorMessage($e->getMessage());return$this->resultFactory->create(ResultFactory::TYPE_REDIRECT)->setPath('*/*/index');}}}
|