Source of file SalesAdminByDeliveryOption.php
Size: 2,393 Bytes - Last Modified: 2021-12-23T10:40:43+00:00
/var/www/docs.ssmods.com/process/src/src/Admin/SalesAdminByDeliveryOption.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | <?php namespace Sunnysideup\EcommerceDelivery\Admin; use Sunnysideup\Ecommerce\Cms\SalesAdmin; use Sunnysideup\Ecommerce\Model\Order; use Sunnysideup\EcommerceDelivery\Model\PickUpOrDeliveryModifierOptions; use Sunnysideup\EcommerceDelivery\Modifiers\PickUpOrDeliveryModifier; class SalesAdminByDeliveryOption extends SalesAdmin { private static $required_permission_codes = 'CMS_ACCESS_SalesAdminByDeliveryOption'; /** * standard SS variable. * * @var string */ private static $url_segment = 'sales-by-delivery-option'; /** * standard SS variable. * * @var string */ private static $menu_title = '... by Delivery'; private static $menu_priority = 3.111; /** * standard SS variable. * * @var array */ private static $managed_models = [ Order::class, ]; public function getEditForm($id = null, $fields = null) { $form = parent::getEditForm($id, $fields); $fields = $form->Fields(); if (is_subclass_of($this->modelClass, Order::class) || Order::class === $this->modelClass) { $brackets = $this->getBrackets(); $arrayOfTabs = array_fill_keys(array_keys($brackets), ['IDs' => []]); $baseList = $this->getList(); $optionPerOrder = $this->getOptionPerOrder($baseList); foreach ($baseList as $order) { $option = $optionPerOrder[$order->ID] ?? 0; foreach (array_keys($brackets) as $key) { if ($option === $key) { $arrayOfTabs[$key]['IDs'][$order->ID] = $order->ID; } } } $this->buildTabs($brackets, $arrayOfTabs, $form); } return $form; } protected function getBrackets(): array { $list = PickUpOrDeliveryModifierOptions::get()->map(); if ($list->exists()) { return (array) $list->toArray(); } return []; } protected function getOptionPerOrder($baseList): array { if ($baseList->exists()) { $list = PickUpOrDeliveryModifier::get()-> filter(['OrderID' => $baseList->columnUnique()]); if ($list->exists()) { return $list->map('OrderID', 'OptionID')->toArray(); } } return []; } } |