Source of file EcommerceTemplateTest.php
Size: 1,851 Bytes - Last Modified: 2021-12-23T10:39:35+00:00
/var/www/docs.ssmods.com/process/src/src/Control/EcommerceTemplateTest.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | <?php namespace Sunnysideup\Ecommerce\Control; use PageController; use SilverStripe\ORM\DataObject; use Sunnysideup\Ecommerce\Model\Order; use Sunnysideup\Ecommerce\Model\Process\OrderStep; use Sunnysideup\Ecommerce\Pages\Product; /** * @description: used to display a random product in the ProductGroupSchema Test. * * @authors: Nicolaas [at] Sunny Side Up .co.nz * @package: ecommerce * @sub-package: control * * @internal * @coversNothing */ class EcommerceTemplateTest extends PageController { public function index() { return $this->renderWith('Sunnysideup\Ecommerce\Layout\EcommerceTemplateTest'); } /** * Goes through all products and find one that * "canPurchase". * * @return Product */ public function RandomProduct() { $offSet = 0; $product = true; $notForSale = true; while ($product && $notForSale) { $notForSale = false; $product = Product::get() ->where('"AllowPurchase" = 1 AND "Price" > 0') ->sort('RAND()') ->limit(1, $offSet) ->First() ; if ($product) { $notForSale = ! (bool) $product->canPurchase(); } ++$offSet; } return $product; } public function SubmittedOrder() { $lastStatusOrder = OrderStep::last_order_step(); if ($lastStatusOrder) { return DataObject::get_one( Order::class, ['StatusID' => $lastStatusOrder->ID], $cacheDataObjectGetOne = true, 'RAND()' ); } } /** * This is used for template-ty stuff. * * @return bool */ public function IsEcommercePage() { return true; } } |