✏️ 正在编辑: GerenteMeta.php
路径:
/srv/systems_dir/yuppiecred/application/models/GerenteMeta.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_GerenteMeta { private $_id; private $_gerenteId; private $_gerenteRotaId; private $_dataInicial; private $_dataFinal; private $_meta; private $_bancoId; public function getId() { return $this->_id; } public function setId($id) { $this->_id = $id; } public function getGerenteId() { return $this->_gerenteId; } public function setGerenteId($gerenteId) { $this->_gerenteId = $gerenteId; } public function getGerenteRotaId() { return $this->_gerenteRotaId; } public function setGerenteRotaId($gerenteRotaId) { $this->_gerenteRotaId = $gerenteRotaId; } public function getMeta() { return $this->_meta; } public function setMeta($meta) { $this->_meta = str_replace(array( '.', ',' ), array( '', '.' ), $meta); } public function getDataInicial() { return $this->_dataInicial; } public function setDataInicial($dataInicial) { if( !empty($dataInicial) ){ try { $data = new Zend_Date($dataInicial, Zend_Date::DATES, 'pt'); $dataInicial = $data->toString('yyyy-MM-dd'); } catch ( Zend_Date_Exception $e ) { echo $e->getMessage(); $dataInicial = null; } } else { $dataInicial = null; } $this->_dataInicial = $dataInicial; } 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 getBancoId() { return $this->_bancoId; } public function setBancoId($bancoId) { $this->_bancoId = $bancoId; } 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 _toArray() { $dbtable = new Model_DbTable_GerenteMeta(); $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_Gerente $gerenteMeta */ public function salvar(Model_GerenteMeta $gerenteMeta) { $dbtable = new Model_DbTable_GerenteMeta(); if( $gerenteMeta->getId() > 0 ){ $dbtable->update($gerenteMeta->_toArray(), 'id = ' . $gerenteMeta->getId()); return $gerenteMeta->getId(); } else { return $dbtable->insert($gerenteMeta->_toArray()); } } /** * 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_GerenteMeta(); 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_GerenteMeta(); return $dbtable->fetchAll($where, $order, $count, $offset); } public function fetchUltimaMeta($gerenteId, $bancoId = null, $rota = false) { $dbtable = new Model_DbTable_GerenteMeta(); $where = $rota ? "gerente_rota_id = {$gerenteId}" : "gerente_id = {$gerenteId}"; if($bancoId != null){ $where .= " AND banco_id = '$bancoId'"; } return $dbtable->fetchRow($where, 'data_final DESC'); } public function checkPeriodoMeta($values, $rota = false){ $dbtable = new Model_DbTable_GerenteMeta(); $gerenteId = !empty($rota) ? $values['gerente_rota_id'] : $values['gerente_id']; $bancoId = !empty($values['banco_id']) ? $values['banco_id'] : null; $where = !empty($rota) ? "gerente_rota_id = $gerenteId" : "gerente_id = $gerenteId"; if($bancoId != null){ $where .= " AND banco_id = '$bancoId'"; } $dtInicial = new Zend_Date($values['data_inicial'], Zend_Date::DATES, 'pt'); $dtFinal = new Zend_Date($values['data_final'], Zend_Date::DATES, 'pt'); $dtInicial = $dtInicial->get('yyyy-MM-dd'); $dtFinal = $dtFinal->get('yyyy-MM-dd'); $where .= " AND ( (data_inicial >= '$dtInicial' AND data_inicial <= '$dtFinal') " . "OR (data_final >= '$dtInicial' AND data_final <= '$dtFinal') " . "OR (data_inicial <= '$dtInicial' AND data_final >= '$dtFinal') )"; return $dbtable->fetchRow($where, 'data_final DESC'); } /** * 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_Gerente(); return $dbtable->fetchRow("id = {$id}"); } public function stats($id, $order = null, $gerenteRota = false) { $sql = "SELECT gm.*, b.nome as banco, (SELECT SUM(valor_liquido) FROM tb_contratos as con LEFT JOIN tb_corretores as c ON c.id = con.corretor_id LEFT JOIN tb_rotas as r ON r.id = c.rota_id LEFT JOIN tb_gerente_rota as gr ON gr.id = r.gerente_id LEFT JOIN tb_gerentes as g ON g.id = gr.gerente_id WHERE g.id = gm.gerente_id AND con.banco_id = gm.banco_id AND con.data_emissao >= gm.data_inicial AND con.data_emissao <= gm.data_final AND con.excluido<>1) as contratos FROM tb_gerentes_metas gm LEFT JOIN tb_bancos as b ON b.id = gm.banco_id WHERE gm.excluido<>1 "; if( $gerenteRota ){ $sql .= " AND gm.gerente_rota_id = {$id}"; } else { $sql .= " AND gm.gerente_id = {$id}"; } $sql .= " AND (b.excluido <> 1 OR b.id IS NULL)"; if( $order ){ $sql .= " ORDER BY {$order}"; } $dbtable = new Model_DbTable_GerenteRota(); $result = $dbtable->getAdapter()->fetchAll($sql); return $result; } public function getProducao($fields = array(), $order = null) { $dbtable = new Model_DbTable_GerenteMeta(); $selectMeta = $dbtable->getAdapter()->select()->from(array( 'gerente_meta' => 'tb_gerentes_metas' ), array( 'total_meta' => 'SUM(gerente_meta.meta)', 'banco_id', 'id', 'gerente_id', 'data_inicial', 'data_final', 'gerente_rota_id' )) ->joinLeft(array( 'bancos' => 'tb_bancos' ), 'bancos.id = gerente_meta.banco_id', array( 'banco' => 'bancos.nome', 'teto_producao' )) ->where('gerente_meta.excluido <> 1') ->where('(bancos.excluido <> 1 OR bancos.id IS NULL)') ->order($order); if( isset($fields['gerente_comercial_id']) && $fields['gerente_comercial_id'] > 0 ){ $selectMeta->where('gerente_id = ' . $fields['gerente_comercial_id']); } if( isset($fields['gerente_rota_id']) && $fields['gerente_rota_id'] > 0 ){ $selectMeta->where('gerente_rota_id = ' . $fields['gerente_rota_id']); } if( isset($fields['grafico']) && $fields['grafico'] ){ $selectMeta->where("gerente_meta.data_inicial <= '" . Zend_Date::now()->get('yyyy-MM-dd') . "'"); $selectMeta->where("gerente_meta.data_final >= '" . Zend_Date::now()->get('yyyy-MM-dd') . "'"); $selectMeta->group('gerente_meta.banco_id'); } else { $selectMeta->group('gerente_meta.id'); } return $dbtable->getAdapter()->fetchAll($selectMeta); } public function findStatusProposta($fields = array()) { $dbtable = new Model_DbTable_GerenteMeta(); $select = $dbtable->getAdapter()->select()->from(array( 'gerente_meta' => 'tb_gerentes_metas' ), array()) ->joinInner(array( 'gerente_meta_status' => 'tb_gerentes_metas_status' ), 'gerente_meta_status.gerente_meta_id = gerente_meta.id', array( 'status_proposta' )) ->joinLeft(array( 'status' => 'tb_tipos' ), 'gerente_meta_status.status_proposta = status.id', array()) ->joinLeft(array( 'bancos' => 'tb_bancos' ), 'bancos.id = gerente_meta.banco_id', array()) ->where('gerente_meta.excluido<>1 AND gerente_meta_status.excluido <> 1') ->group('gerente_meta_status.status_proposta'); if( isset($fields['gerente_comercial_id']) && !empty($fields['gerente_comercial_id']) ){ $select->where('gerente_id = ' . $fields['gerente_comercial_id']); } if( isset($fields['gerente_rota_id']) && $fields['gerente_rota_id'] > 0 ){ $select->where('gerente_rota_id = ' . $fields['gerente_rota_id']); } return $dbtable->getAdapter()->fetchCol($select); } public function findBancos($fields = array()) { $dbtable = new Model_DbTable_GerenteMeta(); $select = $dbtable->getAdapter()->select()->from(array( 'gerente_meta' => 'tb_gerentes_metas' ), array( 'banco_id' )) ->joinInner(array( 'gerente_meta_status' => 'tb_gerentes_metas_status' ), 'gerente_meta_status.gerente_meta_id = gerente_meta.id', array()) ->joinLeft(array( 'status' => 'tb_tipos' ), 'gerente_meta_status.status_proposta = status.id', array()) ->joinLeft(array( 'bancos' => 'tb_bancos' ), 'bancos.id = gerente_meta.banco_id', array()) ->group('bancos.id'); if( isset($fields['gerente_id']) && !empty($fields['gerente_id']) ){ $select->where('gerente_id = ' . $fields['gerente_id']); } return $dbtable->getAdapter()->fetchCol($select); } public function getProducaoFaixaValores($fields = array(), $order = null, $registro = array()) { $dbtable = new Model_DbTable_GerenteMeta(); $selectMeta = $dbtable->getAdapter()->select()->from(array( 'gerente_meta' => 'tb_gerentes_metas' ), array( 'total_meta' => 'SUM(gerente_meta.meta)' )) ->where('gerente_meta.excluido <> 1') ->group('gerente_meta.id') ->order($order); if( isset($fields['gerente_comercial_id']) && $fields['gerente_comercial_id'] > 0 ){ $selectMeta->where('gerente_id = ' . $fields['gerente_comercial_id']); } if( isset($fields['gerente']) && !empty($fields['gerente']) && $registro['gerente_id'] > 0){ $selectMeta->where("gerente_id = {$registro['gerente_id']}"); } if( isset($fields['banco_id']) && !empty($fields['banco_id'])){ $selectMeta->where("banco_id = {$fields['banco_id']}"); }else{ $selectMeta->where("banco_id = 0"); } if( isset($fields['supervisor']) && !empty($fields['supervisor']) && $registro['supervisor_id'] > 0 ){ $selectMeta->where("gerente_rota_id = {$registro['supervisor_id']}"); } if( isset($fields['data_inicial']) && !empty($fields['data_inicial']) ){ $selectMeta->where("data_inicial <= STR_TO_DATE('" . $fields['data_inicial'] . "', '%d/%m/%Y')"); } if( isset($fields['data_final']) && !empty($fields['data_final']) ){ $selectMeta->where("data_final >= STR_TO_DATE('" . $fields['data_final'] . "', '%d/%m/%Y')"); } return $dbtable->getAdapter()->fetchRow($selectMeta); } }
💾 保存文件
← 返回文件管理器