File indexing completed on 2025-05-04 05:29:32
0001 <?php 0002 /** 0003 * ocs-webserver 0004 * 0005 * Copyright 2016 by pling GmbH. 0006 * 0007 * This file is part of ocs-webserver. 0008 * 0009 * This program is free software: you can redistribute it and/or modify 0010 * it under the terms of the GNU Affero General Public License as 0011 * published by the Free Software Foundation, either version 3 of the 0012 * License, or (at your option) any later version. 0013 * 0014 * This program is distributed in the hope that it will be useful, 0015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0017 * GNU Affero General Public License for more details. 0018 * 0019 * You should have received a copy of the GNU Affero General Public License 0020 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0021 **/ 0022 class Statistics_Model_DbTable_StatDaily extends Zend_Db_Table_Abstract 0023 { 0024 0025 /** 0026 * The primary key column or columns. 0027 * A compound key should be declared as an array. 0028 * You may declare a single-column primary key 0029 * as a string. 0030 * 0031 * @var mixed 0032 */ 0033 protected $_primary = 'daily_id'; 0034 0035 /** 0036 * The table name. 0037 * 0038 * @var string 0039 */ 0040 protected $_name = 'stat_daily'; 0041 0042 protected $_keyColumnsForRow = array('project_id', 'project_category_id', 'project_type_id', 'year', 'month', 'day'); 0043 0044 0045 /** 0046 * @param $data 0047 */ 0048 public function save($data) 0049 { 0050 $rowSet = $this->findForColumns($data, $this->_keyColumnsForRow); 0051 0052 if (null === $rowSet) { 0053 $rowSet = $this->createRow($data); 0054 } else { 0055 $rowSet->setFromArray($data); 0056 } 0057 0058 $rowSet->save(); 0059 } 0060 0061 /** 0062 * @param $data 0063 * @param $columns 0064 * @return null|Zend_Db_Table_Row_Abstract 0065 */ 0066 public function findForColumns($data, $columns) 0067 { 0068 0069 $statement = $this->select()->setIntegrityCheck(false)->from($this->_name); 0070 foreach ($columns as $identifier) { 0071 $statement->where($this->_db->quoteIdentifier($identifier) . ' = ?', $data[$identifier]); 0072 } 0073 0074 return $this->fetchRow($statement); 0075 } 0076 0077 }