Moved the unit status logic into the model where it belongs.
git-svn-id: file:///svn-source/pmgr/branches/initial_20090526/site@30 97e9348a-65ac-dc4b-aefc-98561f571b83
This commit is contained in:
@@ -10,15 +10,21 @@ class UnitsController extends AppController {
|
|||||||
$this->all();
|
$this->all();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function unavailable() {
|
||||||
|
$this->Unit->recursive = 0;
|
||||||
|
$this->set('units', $this->paginate(array($this->Unit->conditionUnavailable())));
|
||||||
|
$this->render('index');
|
||||||
|
}
|
||||||
|
|
||||||
function vacant() {
|
function vacant() {
|
||||||
$this->Unit->recursive = 0;
|
$this->Unit->recursive = 0;
|
||||||
$this->set('units', $this->paginate(array('Unit.status < ' . $this->Unit->occupiedEnumValue())));
|
$this->set('units', $this->paginate(array($this->Unit->conditionVacant())));
|
||||||
$this->render('index');
|
$this->render('index');
|
||||||
}
|
}
|
||||||
|
|
||||||
function occupied() {
|
function occupied() {
|
||||||
$this->Unit->recursive = 0;
|
$this->Unit->recursive = 0;
|
||||||
$this->set('units', $this->paginate(array('Unit.status >= ' . $this->Unit->occupiedEnumValue())));
|
$this->set('units', $this->paginate(array($this->Unit->conditionOccupied())));
|
||||||
$this->render('index');
|
$this->render('index');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,8 +45,35 @@ class Unit extends AppModel {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
function statusEnums() {
|
||||||
|
static $status_enums;
|
||||||
|
if (!isset($status_enums))
|
||||||
|
$status_enums = $this->getEnumValues('status');
|
||||||
|
return $status_enums;
|
||||||
|
}
|
||||||
|
|
||||||
|
function statusValue($enum) {
|
||||||
|
$enums = $this->statusEnums();
|
||||||
|
return $enums[$enum];
|
||||||
|
}
|
||||||
|
|
||||||
function occupiedEnumValue() {
|
function occupiedEnumValue() {
|
||||||
$enums = $this->getEnumValues('status');
|
return statusValue('OCCUPIED');
|
||||||
return $enums['OCCUPIED'];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function conditionOccupied() {
|
||||||
|
return ('Unit.status >= ' . $this->statusValue('OCCUPIED'));
|
||||||
|
}
|
||||||
|
|
||||||
|
function conditionVacant() {
|
||||||
|
return ('Unit.status BETWEEN ' .
|
||||||
|
($this->statusValue('UNAVAILABLE')+1) .
|
||||||
|
' AND ' .
|
||||||
|
($this->statusValue('OCCUPIED')-1));
|
||||||
|
}
|
||||||
|
|
||||||
|
function conditionUnavailable() {
|
||||||
|
return ('Unit.status <= ' . $this->statusValue('UNAVAILABLE'));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user