Source of file OrderDetail.php
Size: 3,400 Bytes - Last Modified: 2021-12-24T06:45:37+00:00
/var/www/docs.ssmods.com/process/src/src/Model/OrderDetail.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 | <?php namespace Dynamic\FoxyStripe\Model; use Dynamic\FoxyStripe\Page\ProductPage; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\GridField\GridField; use SilverStripe\Forms\GridField\GridFieldConfig_RecordViewer; use SilverStripe\ORM\DataObject; use SilverStripe\Security\Permission; /** * Class OrderDetail * @package Dynamic\FoxyStripe\Model * * @property \SilverStripe\ORM\FieldType\DBInt Quantity * @property \SilverStripe\ORM\FieldType\DBCurrency Price * @property \SilverStripe\ORM\FieldType\DBVarchar ProductName * @property \SilverStripe\ORM\FieldType\DBVarchar ProductCode * @property \SilverStripe\ORM\FieldType\DBText ProductImage * @property \SilverStripe\ORM\FieldType\DBVarchar ProductCategory * * @property int ProductID * @method ProductPage Product() * @property int OrderID * @method Order Order() * * @method \SilverStripe\ORM\HasManyList OrderOptions() * @method \SilverStripe\ORM\ManyManyList OptionItems() */ class OrderDetail extends DataObject { /** * @var string */ private static $singular_name = 'Order Detail'; /** * @var string */ private static $plural_name = 'Order Details'; /** * @var string */ private static $description = ''; /** * @var array */ private static $db = array( 'Quantity' => 'Int', 'Price' => 'Currency', 'ProductName' => 'Varchar(255)', 'ProductCode' => 'Varchar(100)', 'ProductImage' => 'Text', 'ProductCategory' => 'Varchar(100)', ); /** * @var array */ private static $has_one = array( 'Product' => ProductPage::class, 'Order' => Order::class, ); /** * @var array */ private static $has_many = array( 'OrderOptions' => OrderOption::class, ); /** * @var array */ private static $many_many = [ 'OptionItems' => OptionItem::class, ]; /** * @var array */ private static $summary_fields = array( 'Product.Title', 'Quantity', 'Price.Nice', ); /** * @var string */ private static $table_name = 'OrderDetail'; /** * @return FieldList */ public function getCMSFields() { $fields = parent::getCMSFields(); if ($this->ID) { $fields->addFieldsToTab('Root.Options', array( GridField::create( 'Options', 'Product Options', $this->OrderOptions(), GridFieldConfig_RecordViewer::create() ), )); } return $fields; } /** * @param bool $member * * @return bool|int */ public function canView($member = null) { return Permission::check('Product_ORDERS', 'any', $member); } /** * @param null $member * * @return bool */ public function canEdit($member = null) { return false; } /** * @param null $member * @param array $context * * @return bool */ public function canCreate($member = null, $context = []) { return false; //return Permission::check('Product_ORDERS'); } public function canDelete($member = null) { return Permission::check('Product_ORDERS', 'any', $member); } } |