Вы не должны использовать суперглобальные переменные PHP непосредственно в CakePHP. Вместо этого следует использовать Model.field
наименование, чтобы не допустить неоднозначных ошибок в полях.
Виртуальные поля - это путь, но это не ваша проблема, вам нужно прочитать книгу еще немного.
$total = $this->RequestedItem->find('all', array(array('fields' => array('sum(Model.cost * Model.quantity) AS ctotal'), 'conditions'=>array('RequestedItem.purchase_request_id'=>$this->params['named']['po_id'])));
должно работать нормально, с virtualFields это будет
var $virtualFields = array('total' => 'SUM(Model.cost * Model.quantity)');
$total = $this->RequestedItem->find('all', array(array('fields' => array('total'), 'conditions'=>array('RequestedItem.purchase_request_id'=>$this->params['named']['po_id'])));
Поля вводятся с помощью клавиши «fields», так же, как условия вводятся с помощью клавиши «условия». Смотри http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find