<?php
class DOMTransaction extends DataObject {
static $db = array (
'Date' => 'SS_DateTime',
'Name' => 'VarChar(255)',
'Total' => 'Decimal(9,2)'
);
static $has_many = array(
'Items' => 'DOMTransactionItem'
);
static $summary_fields = array(
'ID',
'Date',
'Name',
'Total'
);
static $searchable_fields = array(
'ID'
);
public function canCreate() {return false;}
public function canView() {return true;}
public function canEdit() {return false;}
public function canDelete() {return false;}
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->removeByName('Items');
$manager = new DataObjectManager(
$this,
'Items',
'DOMTransactionItem',
array(
'Name' => 'Name'
, 'Count' => 'Quantity'
, 'Price' => 'Price'
, 'Subtotal' => 'Subtotal'
),
'getCMSFields_forPopup'
);
$manager->setPermissions(array('view'));
$fields->addFieldToTab('Root.Main', $manager);
return $fields;
}
function requireDefaultRecords() {
parent::requireDefaultRecords();
$tx = DataObject::get_one('DOMTransaction');
if (!$tx) {
$tx = new DOMTransaction();
$tx->Date = SS_Datetime::now();
$tx->Name = 'Test Transaction';
$tx->Total = 10;
$tx->write();
$txi = new DOMTransactionItem();
$txi->TransactionID = $tx->ID;
$txi->Name = 'Test Product';
$txi->Count = 4;
$txi->Price = 2.5;
$txi->write();
}
}
}
class DOMTransactionItem extends DataObject {
static $db = array (
'Name' => 'Text',
'Count' => 'Int',
'Price' => 'Decimal(9,2)',
);
static $has_one = array(
'Transaction' => 'DOMTransaction'
);
static $summary_fields = array(
'Name',
'Count',
'Price'
);
}
class DOMModelAdmin extends ModelAdmin {
public static $managed_models = array(
'DOMTransaction' => array('title' => "Transactions")
);
public $showImportForm = false;
static $url_segment = 'domtest';
static $menu_title = 'DOM Test';
}