100, 'group' => 'Lease.id', 'order' => array('Lease.movein_date' => 'DESC')); var $sidemenu_links = array(array('name' => 'Leases', 'header' => true), array('name' => 'Active', 'url' => array('controller' => 'leases', 'action' => 'active')), array('name' => 'Closed', 'url' => array('controller' => 'leases', 'action' => 'closed')), array('name' => 'All', 'url' => array('controller' => 'leases', 'action' => 'all')), ); /************************************************************************** ************************************************************************** ************************************************************************** * override: sideMenuLinks * - Generates controller specific links for the side menu */ function sideMenuLinks() { return array_merge(parent::sideMenuLinks(), $this->sidemenu_links); } /************************************************************************** ************************************************************************** ************************************************************************** * action: index * - Lists current leases */ function index() { $this->active(); } /************************************************************************** ************************************************************************** ************************************************************************** * action: active * - Lists all active leases */ function active() { $leases = $this->paginate(array('Lease.close_date IS NULL')); // Get the balance on each lease. foreach ($leases AS &$lease) { $stats = $this->Lease->stats($lease['Lease']['id']); $lease['Lease']['balance'] = $stats['Account']['Ledger']['balance']; } $title = 'Active Leases'; $this->set('title', $title); $this->set('heading', $title); $this->set('leases', $leases); $this->render('index'); } /************************************************************************** ************************************************************************** ************************************************************************** * action: closed * - Lists all closed (inactive) leases */ function closed() { $leases = $this->paginate(array('Lease.close_date IS NOT NULL')); // Get the balance on each lease. foreach ($leases AS &$lease) { $stats = $this->Lease->stats($lease['Lease']['id']); $lease['Lease']['balance'] = $stats['Account']['Ledger']['balance']; } $title = 'Past Leases'; $this->set('title', $title); $this->set('heading', $title); $this->set('leases', $leases); $this->render('index'); } /************************************************************************** ************************************************************************** ************************************************************************** * action: all * - Lists all leases */ function all() { $leases = $this->paginate(); // Get the balance on each lease. foreach ($leases AS &$lease) { $stats = $this->Lease->stats($lease['Lease']['id']); $lease['Lease']['balance'] = $stats['Account']['Ledger']['balance']; } $title = 'All Leases'; $this->set('title', $title); $this->set('heading', $title); $this->set('leases', $leases); $this->render('index'); } /************************************************************************** ************************************************************************** ************************************************************************** * action: view * - Displays information about a specific lease */ function view($id = null) { if (!$id) { $this->Session->setFlash(__('Invalid Item.', true)); $this->redirect(array('action'=>'index')); } // Get details about the lease and its ledgers (no ledger entries yet) $this->Lease->Behaviors->attach('Containable'); $lease = $this->Lease->find ('first', array('contain' => array(// Models 'LeaseType', 'Unit', 'Account' => array('Ledger'), 'Customer', ), 'conditions' => array(array('Lease.id' => $id)), 'limit' => 2 ) ); $this->Lease->Behaviors->detach('Containable'); // Summarize each ledger $this->Lease->statsMerge($lease, $this->Lease->stats($lease['Lease']['id'])); // Obtain the overall lease balance $this->Lease->statsMerge($lease['Lease'], array('stats' => $this->Lease->stats($id))); $balance = $lease['Lease']['stats']['Account']['Ledger']['balance']; // Prepare to render $title = 'Lease: #' . $lease['Lease']['id']; $this->set(compact('lease', 'title', 'balance')); } }