示例#1
0
 public function recordsAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender(true);
     $this->getResponse()->setHeader('Content-Type', 'application/json');
     //        require_once APPLICATCION_PATH . '/modules/asset/models/DbTable/Item.php';
     $items = new Asset_Model_DbTable_Item();
     $sort_column = $this->_getParam('sortname', 'ItemID');
     # this will default to undefined
     $sort_order = $this->_getParam('sortorder', 'desc');
     # this will default to undefined
     $page = $this->_getParam('page', 1);
     $limit = $this->_getParam('rp', 10);
     $offset = ($page - 1) * $limit;
     $search_column = $this->_getParam('qtype', 'Ma_tai_san');
     $search_for = $this->_getParam('query', '');
     $mode = (int) $this->_getParam('mode', 1);
     switch ($mode) {
         case 1:
             // list all item
             $select = $items->select()->order("{$sort_column} {$sort_order}")->limit($limit, $offset);
             break;
         case 2:
             // list all item free
             $select = $items->select()->where("Status = '0'")->order("{$sort_column} {$sort_order}")->limit($limit, $offset);
             break;
         case 3:
             // list all item busy
             $select = $items->select()->where("Status = '1'")->order("{$sort_column} {$sort_order}")->limit($limit, $offset);
             break;
         case 4:
             // list all item corrupt
             $select = $items->select()->where("Status = '2'")->order("{$sort_column} {$sort_order}")->limit($limit, $offset);
             break;
         default:
             $select = $items->select()->order("{$sort_column} {$sort_order}")->limit($limit, $offset);
             break;
     }
     if (!empty($search_column) && !empty($search_for)) {
         $select->where($search_column . ' LIKE ?', '%' . $search_for . '%');
     }
     $pager = Zend_Paginator::factory($select);
     $pager->setCurrentPageNumber($page);
     $pager->setItemCountPerPage($limit);
     $records = $pager->getIterator();
     $total = $pager->getTotalItemCount();
     if ($total == 0) {
         echo Zend_Json::encode(array('page' => $page, 'total' => $total, 'rows' => NULL));
         exit;
     }
     foreach ($records as $record) {
         //If cell's elements have named keys, they must match column names
         //Only cell's with named keys and matching columns are order independent.
         switch ($record['Type']) {
             case 0:
                 $record['Type'] = 'Bảo mật cao';
                 break;
             case 1:
                 $record['Type'] = 'Bảo mật thấp';
                 break;
             default:
                 $record['Type'] = '-';
                 break;
         }
         switch ($record['Status']) {
             case 0:
                 $record['Status'] = 'Có thể mượn';
                 break;
             case 1:
                 $record['Status'] = 'Đang cho mượn';
                 break;
             case 2:
                 $record['Status'] = 'Hỏng';
                 break;
             default:
                 $record['Status'] = '-';
                 break;
         }
         $rows[] = array('id' => $record['ItemID'], 'cell' => $record->toArray());
     }
     $jsonData = array('page' => $page, 'total' => $total, 'rows' => $rows);
     echo Zend_Json::encode($jsonData);
 }