File indexing completed on 2024-05-26 05:59:15

0001 <?php
0002 
0003 /**
0004  *  ocs-webserver
0005  *
0006  *  Copyright 2016 by pling GmbH.
0007  *
0008  *    This file is part of ocs-webserver.
0009  *
0010  *    This program is free software: you can redistribute it and/or modify
0011  *    it under the terms of the GNU Affero General Public License as
0012  *    published by the Free Software Foundation, either version 3 of the
0013  *    License, or (at your option) any later version.
0014  *
0015  *    This program is distributed in the hope that it will be useful,
0016  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
0017  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0018  *    GNU Affero General Public License for more details.
0019  *
0020  *    You should have received a copy of the GNU Affero General Public License
0021  *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
0022  **/
0023 class Default_Model_DbTable_ProjectClone extends Local_Model_Table
0024 {
0025 
0026     protected $_name = "project_clone";
0027 
0028     protected $_keyColumnsForRow = array('project_clone_id');
0029 
0030     protected $_key = 'project_clone_id';
0031 
0032     protected $_defaultValues = array(
0033         'project_clone_id'  => null,
0034         'project_id'        => null,
0035         'project_id_parent' => null,
0036         'external_link'     => null,
0037         'member_id'         => null,
0038         'text'              => null,
0039         'is_deleted'        => null,
0040         'is_valid'          => null,
0041         'project_clone_type' => null,
0042         'created_at'        => null,
0043         'changed_at'        => null,
0044         'deleted_at'        => null
0045     );
0046 
0047     public function setDelete($project_clone_id)
0048     {
0049         $updateValues = array(
0050             'is_deleted' => 1,
0051         );
0052 
0053         $this->update($updateValues, 'project_clone_id=' . $project_clone_id);
0054     }
0055 
0056     public function setValid($project_clone_id)
0057     {
0058         $updateValues = array(
0059             'is_valid' => 1,
0060         );
0061 
0062         $this->update($updateValues, 'project_clone_id=' . $project_clone_id);
0063     }
0064 
0065     /**
0066      * @param array $data
0067      *
0068      * @return Zend_Db_Table_Rowset_Abstract
0069      */
0070     protected function generateRowSet($data)
0071     {
0072         $classRowSet = $this->getRowsetClass();
0073 
0074         return new $classRowSet(array(
0075             'table'    => $this,
0076             'rowClass' => $this->getRowClass(),
0077             'stored'   => true,
0078             'data'     => $data
0079         ));
0080     }
0081 
0082     public function delete($where)
0083     {
0084         $where = parent::_whereExpr($where);
0085 
0086         /**
0087          * Build the DELETE statement
0088          */
0089         $sql = "UPDATE " . parent::getAdapter()->quoteIdentifier($this->_name, true) . " SET `is_deleted` = 1 " . (($where) ? " WHERE $where" : '');
0090 
0091         /**
0092          * Execute the statement and return the number of affected rows
0093          */
0094         $stmt = parent::getAdapter()->query($sql);
0095         $result = $stmt->rowCount();
0096 
0097         return $result;
0098     }
0099 
0100     public function listAll($startIndex, $pageSize, $sorting)
0101     {
0102         $select = $this->select()->order($sorting)->limit($pageSize, $startIndex);
0103         $rows = $this->fetchAll($select)->toArray();
0104         $select = $this->select()->where('is_deleted = 0');
0105         $count = $this->fetchAll($select)->count();
0106 
0107         if (empty($rows)) {
0108             return array('rows' => array(), 'totalCount' => 0);
0109         }
0110 
0111         return array('rows' => $rows, 'totalCount' => $count);
0112     }
0113 
0114 }