✏️ 正在编辑: Mensagem.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/application/models/Mensagem.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_Mensagem { private $_id; private $_remetenteId; private $_destinatarioId; private $_supervisorId; private $_mensagem; private $_dataEnvio; private $_dataFinal; private $_anexo; private $_assunto; public function __construct($options = null) { if( is_array($options) ){ $this->setOptions($options); } } public function setOptions(array $options) { $methods = get_class_methods($this); foreach ( $options as $key => $value ) { $explode = explode("_", $key); $methodName = ''; foreach ( $explode as $v ) { $methodName .= ucfirst($v); } $key = $methodName != '' ? $methodName : $key; $method = 'set' . ucfirst($key); if( in_array($method, $methods) ){ $this->$method($value); } } return $this; } public function getId() { return $this->_id; } public function setId($id) { $this->_id = $id; } public function getRemetenteId() { return $this->_remetenteId; } public function setRemetenteId($id) { $this->_remetenteId = $id; } public function getDestinatarioId() { return $this->_destinatarioId; } public function setDestinatarioId($id) { $this->_destinatarioId = $id; } public function getMensagem() { return $this->_mensagem; } public function setMensagem($mensagem) { $this->_mensagem = $mensagem; } public function getAssunto() { return $this->_assunto; } public function setAssunto($assunto) { $this->_assunto = $assunto; } public function getDataEnvio() { return $this->_dataEnvio; } public function setDataEnvio($dataEnvio) { if( !empty($dataEnvio) ){ try { $data = new Zend_Date($dataEnvio, Zend_Date::DATES, 'pt'); $dataEnvio = $data->toString('yyyy-MM-dd'); } catch ( Zend_Date_Exception $e ) { echo $e->getMessage(); $dataEnvio = null; } } else { $dataEnvio = null; } $this->_dataEnvio = $dataEnvio; } public function getDataFinal() { return $this->_dataFinal; } public function setDataFinal($dataFinal) { if( !empty($dataFinal) ){ try { $data = new Zend_Date($dataFinal, Zend_Date::DATES, 'pt'); $dataFinal = $data->toString('yyyy-MM-dd'); } catch ( Zend_Date_Exception $e ) { echo $e->getMessage(); $dataFinal = null; } } else { $dataFinal = null; } $this->_dataFinal = $dataFinal; } public function getSupervisorId() { return $this->_supervisorId; } public function setSupervisorId($supervisorId) { $this->_supervisorId = $supervisorId; } public function getAnexo() { return $this->_anexo; } public function setAnexo($anexo) { $this->_anexo = $anexo; } public function _toArray() { $dbtable = new Model_DbTable_Mensagem(); $info = $dbtable->info(); $methods = get_class_methods($this); $data = array(); foreach ( $info['cols'] as $key ) { $col = $key; $explode = explode('_', $key); $methodName = ''; foreach ( $explode as $v ) { $methodName .= ucfirst($v); } $key = $methodName != '' ? $methodName : $key; $method = 'get' . ucfirst($key); if( in_array($method, $methods) ){ $data[$col] = $this->$method(); } } return $data; } /** * Insere ou altera o registro passado por parâmetro * @param Model_Mensagem $mensagem */ public function salvar(Model_Mensagem $mensagem) { $dbtable = new Model_DbTable_Mensagem(); $dados = $mensagem->_toArray(); if( !$dados['destinatario_id'] ){ $dados['destinatario_id'] = null; } if( $mensagem->getId() > 0 ){ unset($dados['remetente_id'], $dados['data_envio']); $dbtable->update($dados, 'id = ' . $mensagem->getId()); return $mensagem->getId(); } else { $dados['remetente_id'] = Yuppie_Auth::getIdentity()->id; $dados['data_envio'] = Zend_Date::now()->get('yyyy-MM-dd HH:mm:ss'); return $dbtable->insert($dados); } } /** * Exclui o registro passado por parâmetro * @param int $id * @return int The number of rows deleted */ public function excluir($id) { if( $id > 0 ){ $dbtable = new Model_DbTable_Mensagem(); return $dbtable->delete('id = ' . $id); } return null; } /** * Retorna uma lista * @param string $where * @param string $order * @param int $count * @param int $offset * @return array */ public function listar($where = null, $order = null, $count = null, $offset = null) { $dbtable = new Model_DbTable_Mensagem(); return $dbtable->fetchAll($where, $order, $count, $offset); } /** * Retorna um fetchRow do item passado por parâmetro * @param int $id * @return Zend_Db_Table_Row_Abstract | null */ public function exibir($id) { $dbtable = new Model_DbTable_Mensagem(); return $dbtable->fetchRow('id = ' . $id); } public function fetchEnviadas($remetenteId, $fields = array()) { $dbtable = new Model_DbTable_Mensagem(); $select = $dbtable->select()->setIntegrityCheck(false) ->from('tb_mensagens') ->joinLeft(array( 'r' => 'tb_usuarios' ), 'r.id = remetente_id', array( 'remetente' => 'r.login' )) ->joinLeft(array( 'd' => 'tb_corretores' ), 'd.id = destinatario_id', array( 'destinatario' => 'd.nome' )) ->joinLeft(array( 's' => 'tb_gerente_rota' ), 's.id = supervisor_id', array( 'destinatario_supervisor' => 's.nome' )) ->order('data_envio DESC') ->where('tb_mensagens.excluido <> 1') ->where('r.id = ?', $remetenteId); if( isset($fields['destinatario_id']) && !empty($fields['destinatario_id']) ){ $select->where("d.id = '" . $fields['destinatario_id'] . "'"); } if( isset($fields['supervisor_id']) && !empty($fields['supervisor_id']) ){ $select->where("s.id = '" . $fields['supervisor_id'] . "'"); } if (!empty($fields['assunto']) ) { $select->where("assunto LIKE '%" . $fields['assunto'] . "%'"); } if( isset($fields['texto']) && !empty($fields['texto']) ){ $select->where("mensagem LIKE '%" . $fields['texto'] . "%'"); } if( isset($fields['data_de']) && !empty($fields['data_de']) && isset($fields['data_a']) && !empty($fields['data_a']) ){ $select->where("(DATE_FORMAT(data_envio, '%Y-%m-%d') >= STR_TO_DATE('" . $fields['data_de'] . "', '%d/%m/%Y')" . " AND DATE_FORMAT(data_envio, '%Y-%m-%d') <= STR_TO_DATE('" . $fields['data_a'] . "', '%d/%m/%Y'))"); } if( isset($fields['final_de']) && !empty($fields['final_de']) && isset($fields['final_a']) && !empty($fields['final_a']) ){ $select->where("(DATE_FORMAT(data_envio, '%Y-%m-%d') >= STR_TO_DATE('" . $fields['final_de'] . "', '%d/%m/%Y')" . " AND DATE_FORMAT(data_envio, '%Y-%m-%d') <= STR_TO_DATE('" . $fields['final_a'] . "', '%d/%m/%Y'))"); } return $dbtable->getAdapter()->fetchAll($select); } public function fetchRecebidas() { $dbtable = new Model_DbTable_Mensagem(); $select = $dbtable->select()->setIntegrityCheck(false) ->from('tb_mensagens') ->joinLeft(array( 'r' => 'tb_usuarios' ), 'r.id = remetente_id', array( 'remetente' => 'r.login' )) ->joinLeft(array( 'd' => 'tb_corretores' ), 'd.id = destinatario_id', array( 'destinatario' => 'd.nome' )) ->joinLeft(array( 'c' => 'tb_corretores' ), 'c.id = destinatario_id', array( 'corretor_id' => 'c.id' )) ->order('data_envio DESC') ->where('tb_mensagens.excluido<>1') ->where('data_final >= CURRENT_DATE()'); if (Yuppie_Auth::getIdentity()->grupo == "Corretor" || Yuppie_Auth::getIdentity()->grupo == "Supervisor") { $select->where('destinatario_id IS NULL OR c.id = ? OR supervisor_id = ?', Yuppie_Auth::getIdentity()->id); } elseif(!empty(Yuppie_Auth::getIdentity()->corretor_id)) { $select->where('destinatario_id IS NULL OR c.id = ?', Yuppie_Auth::getIdentity()->corretor_id); } $select->group(['remetente_id', 'assunto', "date_format(data_envio, '%d/%m/%Y')", 'data_final']); return $dbtable->getAdapter()->fetchAll($select); } }
💾 保存文件
← 返回文件管理器