From 2f8234dbd9f19ba2d287643a637d58bb960ef67b Mon Sep 17 00:00:00 2001 From: Gundo Sifhufhi <sifhufhisg@gmail.com> Date: Tue, 10 Jan 2023 15:36:21 +0200 Subject: [PATCH] Admin Config Field to Enable or Disable additional info display on rates at checkout Determine Business/Working Days From Received min_delivery_date & min_delivery_date --- composer.json | 9 --- .../Model/Carrier/Customshipping.php | 62 ++++++++++++++++++- .../Customshipping/composer.lock | 0 .../Customshipping/etc/adminhtml/system.xml | 6 ++ .../Customshipping/vendor}/autoload.php | 0 .../vendor}/composer/ClassLoader.php | 7 +-- .../vendor}/composer/InstalledVersions.php | 0 .../Customshipping/vendor}/composer/LICENSE | 0 .../vendor}/composer/autoload_classmap.php | 0 .../vendor}/composer/autoload_namespaces.php | 0 .../vendor}/composer/autoload_psr4.php | 0 .../vendor}/composer/autoload_real.php | 0 .../vendor}/composer/autoload_static.php | 2 +- .../vendor}/composer/installed.json | 0 .../vendor}/composer/installed.php | 4 +- 15 files changed, 71 insertions(+), 19 deletions(-) delete mode 100644 composer.json rename composer.lock => uafrica/Customshipping/composer.lock (100%) rename {vendor => uafrica/Customshipping/vendor}/autoload.php (100%) rename {vendor => uafrica/Customshipping/vendor}/composer/ClassLoader.php (98%) rename {vendor => uafrica/Customshipping/vendor}/composer/InstalledVersions.php (100%) rename {vendor => uafrica/Customshipping/vendor}/composer/LICENSE (100%) rename {vendor => uafrica/Customshipping/vendor}/composer/autoload_classmap.php (100%) rename {vendor => uafrica/Customshipping/vendor}/composer/autoload_namespaces.php (100%) rename {vendor => uafrica/Customshipping/vendor}/composer/autoload_psr4.php (100%) rename {vendor => uafrica/Customshipping/vendor}/composer/autoload_real.php (100%) rename {vendor => uafrica/Customshipping/vendor}/composer/autoload_static.php (82%) rename {vendor => uafrica/Customshipping/vendor}/composer/installed.json (100%) rename {vendor => uafrica/Customshipping/vendor}/composer/installed.php (79%) diff --git a/composer.json b/composer.json deleted file mode 100644 index 5ca18cd..0000000 --- a/composer.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "repositories": { - "packagist.org": false, - "private-packagist": { - "type": "composer", - "url": "https://repo.packagist.com/bobgo/" - } - } -} diff --git a/uafrica/Customshipping/Model/Carrier/Customshipping.php b/uafrica/Customshipping/Model/Carrier/Customshipping.php index 00233a6..8761d92 100644 --- a/uafrica/Customshipping/Model/Carrier/Customshipping.php +++ b/uafrica/Customshipping/Model/Carrier/Customshipping.php @@ -1,7 +1,9 @@ <?php +declare(strict_types=1); namespace uafrica\Customshipping\Model\Carrier; +use DateTime; use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory; use Magento\CatalogInventory\Api\StockRegistryInterface; use Magento\Directory\Helper\Data; @@ -245,8 +247,10 @@ class Customshipping extends AbstractCarrierOnline implements \Magento\Shipping\ return $response; } + /** - * Collect and get rate + * Collect and get rates + * * @param RateRequest $request * @return Result|bool|null */ @@ -303,6 +307,7 @@ class Customshipping extends AbstractCarrierOnline implements \Magento\Shipping\ } $payload = [ + 'identifier' => "https://bobgomagento.test/", 'rate' => [ 'origin' => [ 'country' => $originCountry, @@ -756,7 +761,7 @@ class Customshipping extends AbstractCarrierOnline implements \Magento\Shipping\ 'activity' => $checkpoint['status'], 'deliverydate' => $this->formatDate($checkpoint['time']), 'deliverytime' => $this->formatTime($checkpoint['time']), - //TODO:Not Receiving Checkpoint location from the sample body of response so, this is temp + //Not Receiving Checkpoint location from the sample body of response so, this is temp 'deliverylocation' => 'Pretoria', ]; } @@ -780,18 +785,69 @@ class Customshipping extends AbstractCarrierOnline implements \Magento\Shipping\ $result->append($error); } else { foreach ($rates['rates'] as $code => $title) { + $method = $this->_rateMethodFactory->create(); $method->setCarrier('uafrica'); - $method->setCarrierTitle('uafrica'); + if ($this->getConfigData('additional_info') == 1) { + $min_delivery_date = $this->getWorkingDays(date('Y-m-d'), $title['min_delivery_date']); + $max_delivery_date = $this->getWorkingDays(date('Y-m-d'), $title['max_delivery_date']); + $method->setCarrierTitle('Delivery in ' . $max_delivery_date .' - ' . $min_delivery_date .' Business Days'); + } else { + $method->setCarrierTitle($this->getConfigData('title')); + } + $method->setMethod($code); $method->setMethodTitle($title['service_name']); $method->setPrice($title['total_price'] / 100); $method->setCost($title['total_price'] / 100); + $result->append($method); } } } + /** + * @param string $min_delivery_date + * @param string $max_delivery_date + * @return string + */ + public function getDay(string $min_delivery_date, string $max_delivery_date): string + { + $min = date('d', strtotime($min_delivery_date)); + $max = date('d', strtotime($max_delivery_date)); + + return $min . ' - ' . $max; + } + ///Write function fo get business days + /** + * @param string $startDate + * @param string $endDate + * @return int + */ + + public function getWorkingDays(string $startDate, string $endDate): int + { + $begin = strtotime($startDate); + $end = strtotime($endDate); + if ($begin > $end) { + echo "Start Date Cannot Be In The Future! <br />"; + return 0; + } else { + $no_days = 0; + $weekends = 0; + while ($begin <= $end) { + $no_days++; // no of days in the given interval + $what_day = date("N", $begin); + if ($what_day > 5) { // 6 and 7 are weekend days + $weekends++; + }; + $begin += 86400; // +1 day + }; + $working_days = $no_days - $weekends; + return $working_days; + } + } + /** * Curl request to uAfrica Shipment Tracking API * @param $trackInfo diff --git a/composer.lock b/uafrica/Customshipping/composer.lock similarity index 100% rename from composer.lock rename to uafrica/Customshipping/composer.lock diff --git a/uafrica/Customshipping/etc/adminhtml/system.xml b/uafrica/Customshipping/etc/adminhtml/system.xml index b1a7bf7..8eccf3f 100644 --- a/uafrica/Customshipping/etc/adminhtml/system.xml +++ b/uafrica/Customshipping/etc/adminhtml/system.xml @@ -30,6 +30,7 @@ <label>Debug Mode</label> <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> </field> + </group> </section> <section id="carriers" translate="label" type="text" sortOrder="1" showInDefault="1" showInWebsite="1" showInStore="1"> @@ -80,6 +81,11 @@ <label>Weight Unit</label> <source_model>uafrica\Customshipping\Model\Source\Unitofmeasure</source_model> </field> + <field id="additional_info" translate="label" type="select" sortOrder="7" showInDefault="1" showInWebsite="1"> + <label>Display Additional Information</label> + <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> + <comment>Display additional information on the checkout page</comment> + </field> <field id="debug" translate="label" type="select" sortOrder="1950" showInDefault="1" showInWebsite="1"> <label>Debug</label> <source_model>Magento\Config\Model\Config\Source\Yesno</source_model> diff --git a/vendor/autoload.php b/uafrica/Customshipping/vendor/autoload.php similarity index 100% rename from vendor/autoload.php rename to uafrica/Customshipping/vendor/autoload.php diff --git a/vendor/composer/ClassLoader.php b/uafrica/Customshipping/vendor/composer/ClassLoader.php similarity index 98% rename from vendor/composer/ClassLoader.php rename to uafrica/Customshipping/vendor/composer/ClassLoader.php index afef3fa..1abd427 100644 --- a/vendor/composer/ClassLoader.php +++ b/uafrica/Customshipping/vendor/composer/ClassLoader.php @@ -493,7 +493,7 @@ class ClassLoader private function findFileWithExtension($class, $ext) { // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + $logicalPathPsr4 = ClassLoader . phpstrtr($class, '\\', DIRECTORY_SEPARATOR); $first = $class[0]; if (isset($this->prefixLengthsPsr4[$first])) { @@ -522,11 +522,10 @@ class ClassLoader // PSR-0 lookup if (false !== $pos = strrpos($class, '\\')) { // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + $logicalPathPsr0 = ClassLoader . phpsubstr($logicalPathPsr4, 0, $pos + 1); } else { // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + $logicalPathPsr0 = ClassLoader . phpstrtr($class, '_', DIRECTORY_SEPARATOR); } if (isset($this->prefixesPsr0[$first])) { diff --git a/vendor/composer/InstalledVersions.php b/uafrica/Customshipping/vendor/composer/InstalledVersions.php similarity index 100% rename from vendor/composer/InstalledVersions.php rename to uafrica/Customshipping/vendor/composer/InstalledVersions.php diff --git a/vendor/composer/LICENSE b/uafrica/Customshipping/vendor/composer/LICENSE similarity index 100% rename from vendor/composer/LICENSE rename to uafrica/Customshipping/vendor/composer/LICENSE diff --git a/vendor/composer/autoload_classmap.php b/uafrica/Customshipping/vendor/composer/autoload_classmap.php similarity index 100% rename from vendor/composer/autoload_classmap.php rename to uafrica/Customshipping/vendor/composer/autoload_classmap.php diff --git a/vendor/composer/autoload_namespaces.php b/uafrica/Customshipping/vendor/composer/autoload_namespaces.php similarity index 100% rename from vendor/composer/autoload_namespaces.php rename to uafrica/Customshipping/vendor/composer/autoload_namespaces.php diff --git a/vendor/composer/autoload_psr4.php b/uafrica/Customshipping/vendor/composer/autoload_psr4.php similarity index 100% rename from vendor/composer/autoload_psr4.php rename to uafrica/Customshipping/vendor/composer/autoload_psr4.php diff --git a/vendor/composer/autoload_real.php b/uafrica/Customshipping/vendor/composer/autoload_real.php similarity index 100% rename from vendor/composer/autoload_real.php rename to uafrica/Customshipping/vendor/composer/autoload_real.php diff --git a/vendor/composer/autoload_static.php b/uafrica/Customshipping/vendor/composer/autoload_static.php similarity index 82% rename from vendor/composer/autoload_static.php rename to uafrica/Customshipping/vendor/composer/autoload_static.php index aa5ee67..5703da5 100644 --- a/vendor/composer/autoload_static.php +++ b/uafrica/Customshipping/vendor/composer/autoload_static.php @@ -7,7 +7,7 @@ namespace Composer\Autoload; class ComposerStaticInit9ef748c64c226893f336031e47dd147d { public static $classMap = array ( - 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'Composer\\InstalledVersions' => __DIR__ . '/..', ); public static function getInitializer(ClassLoader $loader) diff --git a/vendor/composer/installed.json b/uafrica/Customshipping/vendor/composer/installed.json similarity index 100% rename from vendor/composer/installed.json rename to uafrica/Customshipping/vendor/composer/installed.json diff --git a/vendor/composer/installed.php b/uafrica/Customshipping/vendor/composer/installed.php similarity index 79% rename from vendor/composer/installed.php rename to uafrica/Customshipping/vendor/composer/installed.php index 967d84e..9e79e7e 100644 --- a/vendor/composer/installed.php +++ b/uafrica/Customshipping/vendor/composer/installed.php @@ -5,7 +5,7 @@ 'version' => 'dev-main', 'reference' => '5d71c85cc020f9db5753213fce46620f15cb94d1', 'type' => 'library', - 'install_path' => __DIR__ . '/../../', + 'install_path' => __DIR__ . '/../magento-uafrica-shipping-extension/', 'aliases' => array(), 'dev' => true, ), @@ -15,7 +15,7 @@ 'version' => 'dev-main', 'reference' => '5d71c85cc020f9db5753213fce46620f15cb94d1', 'type' => 'library', - 'install_path' => __DIR__ . '/../../', + 'install_path' => __DIR__ . '/../magento-uafrica-shipping-extension/', 'aliases' => array(), 'dev_requirement' => false, ), -- GitLab