Files
pmgr/controllers/tenders_controller.php
abijah bfa71375e8 Started work on handling NSF, but will deal with deposits first, since we can't get an NSF without a deposit first.
git-svn-id: file:///svn-source/pmgr/branches/yafr_20090716/site@407 97e9348a-65ac-dc4b-aefc-98561f571b83
2009-07-29 01:51:34 +00:00

112 lines
3.7 KiB
PHP

<?php
class TendersController extends AppController {
var $sidemenu_links = array();
/**************************************************************************
**************************************************************************
**************************************************************************
* override: sideMenuLinks
* - Generates controller specific links for the side menu
*/
function sideMenuLinks() {
return array_merge(parent::sideMenuLinks(), $this->sidemenu_links);
}
/**************************************************************************
**************************************************************************
**************************************************************************
* action: index / all
* - Generate a listing of Tenders
*/
function index() { $this->all(); }
function all() { $this->gridView('All Legal Tender', 'all'); }
/**************************************************************************
**************************************************************************
**************************************************************************
* virtuals: gridData
* - With the application controller handling the gridData action,
* these virtual functions ensure that the correct data is passed
* to jqGrid.
*/
function gridDataTables(&$params, &$model) {
return array
('contain' => false,
);
}
function gridDataPostProcessLinks(&$params, &$model, &$records, $links) {
$links['Tender'] = array('id');
return parent::gridDataPostProcessLinks($params, $model, $records, $links);
}
/**************************************************************************
**************************************************************************
**************************************************************************
* action: nsf
* - Marks a tender as having insufficient funds.
*/
function nsf($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid Item.', true));
$this->redirect(array('action'=>'index'));
}
// REVISIT <AP>: 20090713
// For testing purposes, must be deleted
$stamp = '2009-07-09';
$stamp = null;
$this->Tender->nsf($id, $stamp);
}
/**************************************************************************
**************************************************************************
**************************************************************************
* action: view
* - Displays information about a specific entry
*/
function view($id = null) {
if (!$id) {
$this->Session->setFlash(__('Invalid Item.', true));
$this->redirect(array('controller' => 'accounts', 'action'=>'index'));
}
// Get the Tender and related fields
$tender = $this->Tender->find
('first', array
('contain' => array('TenderType'),
));
// REVISIT <AP>: 20090713
// Consider allowing the NSF operation only if the source is used on
// a ledger entry that is debited on a "payable" account (perhaps
// even restricted to "payable" ASSET accounts), credited on Receipt
// (or A/R), and reconciles the credit to an entry that debits on a
// "depositable" account.
// Set up dynamic menu items
$this->sidemenu_links[] =
array('name' => 'Operations', 'header' => true);
$this->sidemenu_links[] =
array('name' => 'NSF',
'url' => array('action' => 'nsf',
$id));
// Prepare to render.
$title = "Tender #{$tender['Tender']['id']}";
$this->set(compact('tender', 'title'));
}
}