✏️ 正在编辑: CorretorMetaOperador.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/application/models/DbTable/CorretorMetaOperador.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_DbTable_CorretorMetaOperador extends Core_DbTable { protected $_primary = 'id'; protected $_name = 'tb_corretores_metas_operador'; protected $_referenceMap = array( 'Corretor' => array( 'columns' => array( 'corretor_id' ), 'refTableClass' => 'Model_DbTable_Corretor', 'refColumns' => array( 'id' ) ), ); public function insert(array $data) { $exist = $this->fetchRow("corretor_id = {$data['corretor_id']} AND ((data_final >= '{$data['data_inicial']}' AND data_inicial <= '{$data['data_inicial']}') OR " . "(data_final >= '{$data['data_final']}' AND data_inicial <= '{$data['data_final']}'))"); if( $exist ){ throw new Exception("Atenção! Já existe meta cadastrada para este intervalo de datas."); } return parent::insert($data); } public function metaPorOperador() { $dtInicial = Zend_Date::now()->setDay(1)->get('dd/MM/yyyy'); $dtFinal = Zend_Date::now()->get('dd/MM/yyyy'); $fields['data_emissao_de'] = $dtInicial; $fields['data_emissao_a'] = $dtFinal; $select = $this->getAdapter()->select()->from(array( 'contratos' => 'tb_contratos' ), array( 'valor_producao' => 'SUM(valor_liquido)', 'data_emissao', 'id_corretor' => 'contratos.corretor_id' )) ->joinInner(array( 'usuarios' => 'tb_usuarios' ), 'usuarios.corretor_id = contratos.corretor_id', array( 'operador' => 'usuarios.login', 'operador_id' => 'usuarios.id' )) ->joinInner(array( 'corretores' => 'tb_corretores' ), 'usuarios.corretor_id = corretores.id', array( '' )) ->where('contratos.excluido <> 1 AND contratos.tipo_registro = 1 AND usuarios.corretor_id > 0 AND usuarios.excluido <> 1 AND corretores.excluido <> 1') ->order('valor_producao DESC') ->group("usuarios.corretor_id"); $select->where("data_emissao >= STR_TO_DATE('" . $fields['data_emissao_de'] . "', '%d/%m/%Y')"); $select->where("data_emissao <= STR_TO_DATE('" . $fields['data_emissao_a'] . "', '%d/%m/%Y')"); if( Yuppie_Auth::getIdentity()->grupo == 'Callcenter' ){ $select->where("usuarios.id = " . Yuppie_Auth::getIdentity()->id); } $result = $this->getAdapter()->fetchRow($select); if( $result ){ $dtMeta = new Zend_Date($result['data_emissao']); $fields['data'] = $dtMeta->get('dd/MM/yyyy'); $fields['corretor_id'] = $result['id_corretor']; $dadosMeta = $this->getProducaoFaixaValores($fields, null); $result['meta'] = $dadosMeta['total_meta']; $result['data_inicial'] = $dadosMeta['data_inicial']; $result['data_final'] = $dadosMeta['data_final']; } return $result; } public function getProducaoFaixaValores($fields = array(), $order = null) { $selectMeta = $this->getAdapter()->select()->from(array( 'corretor_meta' => 'tb_corretores_metas_operador' ), array( 'total_meta' => 'SUM(corretor_meta.meta)', 'data_inicial', 'data_final' )) ->where('corretor_meta.excluido <> 1') ->group('corretor_meta.id') ->order($order); if( isset($fields['corretor_id']) && $fields['corretor_id'] > 0 ){ $selectMeta->where('corretor_meta.corretor_id = ' . $fields['corretor_id']); } if( isset($fields['data']) && !empty($fields['data']) ){ $selectMeta->where("STR_TO_DATE('" . $fields['data'] . "', '%d/%m/%Y') >= data_inicial AND STR_TO_DATE('" . $fields['data'] . "', '%d/%m/%Y') <= data_final"); } return $this->getAdapter()->fetchRow($selectMeta); } public function metasOperadores() { $dtInicial = Zend_Date::now()->setDay(1)->get('dd/MM/yyyy'); $dtFinal = Zend_Date::now()->get('dd/MM/yyyy'); $fields['data_emissao_de'] = $dtInicial; $fields['data_emissao_a'] = $dtFinal; $select = $this->getAdapter()->select()->from(array( 'contratos' => 'tb_contratos' ), array( 'quantidade_total' => 'COUNT(contratos.id)', 'valor_producao' => 'SUM(valor_liquido)', 'data_emissao', 'id_corretor' => 'contratos.corretor_id' )) ->joinInner(array( 'usuarios' => 'tb_usuarios' ), 'usuarios.corretor_id = contratos.corretor_id', array( 'operador' => 'usuarios.login', 'operador_id' => 'usuarios.id' )) ->joinInner(array( 'corretores' => 'tb_corretores' ), 'usuarios.corretor_id = corretores.id', array( '' )) ->where('contratos.excluido <> 1 AND contratos.tipo_registro = 1 AND usuarios.corretor_id > 0 AND usuarios.excluido <> 1 AND corretores.excluido <> 1') ->order('valor_producao DESC'); $select->where("data_emissao >= STR_TO_DATE('" . $fields['data_emissao_de'] . "', '%d/%m/%Y')"); $select->where("data_emissao <= STR_TO_DATE('" . $fields['data_emissao_a'] . "', '%d/%m/%Y')"); if (Yuppie_Auth::getIdentity()->grupo == 'Callcenter') { $select->where("usuarios.id = " . Yuppie_Auth::getIdentity()->id); } if (!(new Zend_Session_Namespace())->acl->isAllowed(Yuppie_Auth::getIdentity()->grupo, 'visualizar-contratos-filiais') ){ $select->where('contratos.empresa_id = ' . Yuppie_Auth::getIdentity()->empresa_id); } $result = $this->getAdapter()->fetchRow($select); if( $result ){ $dtMeta = new Zend_Date($result['data_emissao']); $fields['data'] = $dtMeta->get('dd/MM/yyyy'); $fields['corretor_id'] = $result['id_corretor']; $totalMeta = $this->getProducaoFaixaValores($fields, null); $result['meta'] = $totalMeta ? $totalMeta['total_meta'] : 0; } return $result; } }
💾 保存文件
← 返回文件管理器