From 5fd74366848e454712d761b365950ca4a51079fc Mon Sep 17 00:00:00 2001 From: Gundo Sifhufhi <sifhufhisg@gmail.com> Date: Thu, 22 Dec 2022 14:37:14 +0200 Subject: [PATCH] Add Unit measures to (uafrica magento) extension in Admin Panel. get predefined methods. --- .../Customshipping/Model/Source/Dropoff.php | 12 ++++ .../Customshipping/Model/Source/Generic.php | 56 +++++++++++++++++++ .../Customshipping/Model/Source/Method.php | 12 ++++ .../Customshipping/Model/Source/Packaging.php | 12 ++++ .../Model/Source/Unitofmeasure.php | 12 ++++ 5 files changed, 104 insertions(+) create mode 100644 uafrica/Customshipping/Model/Source/Dropoff.php create mode 100644 uafrica/Customshipping/Model/Source/Generic.php create mode 100644 uafrica/Customshipping/Model/Source/Method.php create mode 100644 uafrica/Customshipping/Model/Source/Packaging.php create mode 100644 uafrica/Customshipping/Model/Source/Unitofmeasure.php diff --git a/uafrica/Customshipping/Model/Source/Dropoff.php b/uafrica/Customshipping/Model/Source/Dropoff.php new file mode 100644 index 0000000..4606fed --- /dev/null +++ b/uafrica/Customshipping/Model/Source/Dropoff.php @@ -0,0 +1,12 @@ +<?php + +namespace uafrica\Customshipping\Model\Source; + +class Dropoff extends Generic +{ + /** + * Carrier code + * @var string + */ + protected string $_code = 'dropoff'; +} diff --git a/uafrica/Customshipping/Model/Source/Generic.php b/uafrica/Customshipping/Model/Source/Generic.php new file mode 100644 index 0000000..f2bbce3 --- /dev/null +++ b/uafrica/Customshipping/Model/Source/Generic.php @@ -0,0 +1,56 @@ +<?php + +namespace uafrica\customshipping\Model\Source; + + +use uafrica\Customshipping\Model\Carrier\Customshipping; + +/** + * uAfrica generic source implementation + */ +class Generic implements \Magento\Framework\Data\OptionSourceInterface +{ + /** + * @var Customshipping + */ + protected Customshipping $_shippingCustomshipping; + + /** + * Carrier code + * @var string + */ + protected string $_code = ''; + + /** + * @param Customshipping $shippingCustomshipping + */ + public function __construct(Customshipping $shippingCustomshipping) + { + $this->_shippingCustomshipping = $shippingCustomshipping; + } + + /** + * Returns array to be used in multiselect on back-end + * @return array + */ + public function toOptionArray() + { + $configData = $this->_shippingCustomshipping->getCode($this->_code); + $arr = []; + if ($configData) { + $arr = array_map( + function ($code, $title) { + return [ + 'value' => $code, + 'label' => $title + ]; + }, + array_keys($configData), + $configData + ); + } + + return $arr; + } + +} diff --git a/uafrica/Customshipping/Model/Source/Method.php b/uafrica/Customshipping/Model/Source/Method.php new file mode 100644 index 0000000..0c958e5 --- /dev/null +++ b/uafrica/Customshipping/Model/Source/Method.php @@ -0,0 +1,12 @@ +<?php + +namespace uafrica\Customshipping\Model\Source; + +class Method extends Generic +{ + /** + * Carrier code + * @var string + */ + protected string $_code = 'method'; +} diff --git a/uafrica/Customshipping/Model/Source/Packaging.php b/uafrica/Customshipping/Model/Source/Packaging.php new file mode 100644 index 0000000..969d080 --- /dev/null +++ b/uafrica/Customshipping/Model/Source/Packaging.php @@ -0,0 +1,12 @@ +<?php + +namespace uafrica\Customshipping\Model\Source; + +class Packaging extends Generic +{ + /** + * Carrier code + * @var string + */ + protected string $_code = 'packaging'; +} diff --git a/uafrica/Customshipping/Model/Source/Unitofmeasure.php b/uafrica/Customshipping/Model/Source/Unitofmeasure.php new file mode 100644 index 0000000..2fd77f1 --- /dev/null +++ b/uafrica/Customshipping/Model/Source/Unitofmeasure.php @@ -0,0 +1,12 @@ +<?php + +namespace uafrica\Customshipping\Model\Source; + +class Unitofmeasure extends Generic +{ + /** + * Carrier code + * @var string + */ + protected string $_code = 'unit_of_measure'; +} -- GitLab