✏️ 正在编辑: PercentualSupervisor.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/application/models/PercentualSupervisor.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_PercentualSupervisor { private $_id; private $_percentualDe; private $_percentualA; private $_comissao; public function getId() { return $this->_id; } public function setId($id) { $this->_id = $id; } public function getPercentualDe() { return $this->_percentualDe; } public function getPercentualA() { return $this->_percentualA; } public function getComissao() { return $this->_comissao; } public function getGerenteId() { return $this->_gerenteId; } public function setPercentualDe($percentualDe) { $this->_percentualDe = str_replace(array( '.', ',' ), array( '', '.' ), $percentualDe); return $this; } public function setPercentualA($percentualA) { $this->_percentualA = str_replace(array( '.', ',' ), array( '', '.' ), $percentualA); return $this; } public function setComissao($comissao) { $this->_comissao = str_replace(array( '.', ',' ), array( '', '.' ), $comissao); return $this; } 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_PercentualSupervisor(); $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_PercentualSupervisor $percentualSupervisor */ public function salvar(Model_PercentualSupervisor $percentualSupervisor) { $dbtable = new Model_DbTable_PercentualSupervisor(); if( $percentualSupervisor->getId() > 0 ){ $dbtable->update($percentualSupervisor->_toArray(), "id = " . $percentualSupervisor->getId()); return $percentualSupervisor->getId(); } else { return $dbtable->insert($percentualSupervisor->_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_PercentualSupervisor(); 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_PercentualSupervisor(); 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_PercentualSupervisor(); return $dbtable->fetchRow("id = " . $id); } public function atualizarDataFinal($id, $dataFinal) { if( $id > 0 && $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; } $dbtable = new Model_DbTable_PercentualSupervisor(); $dados = $dbtable->fetchRow("id = " . $id); if( $dados['data_inicial'] > $dataFinal ){ throw new Exception("Ocorreu um erro, data inválida."); } $result = $dbtable->update(array( 'data_final' => $dataFinal ), "id = " . $id); return $result; } return null; } public function exportarComissaoSupervisor(array $supervisores, array $comissoes) { $percentual = new Model_PercentualSupervisor(); $comissionamentoId = null; $cont = 0; foreach ( $comissoes as $c ) { $dadosPercentual = $percentual->exibir($c); foreach ( $supervisores as $e ) { if($this->existeComissao($e, $dadosPercentual['banco_id'], $dadosPercentual['tabela_id'], $dadosPercentual['convenio_id'], $dadosPercentual['tipo_produto'], $dadosPercentual['prazo'], $dadosPercentual['comissao'], $dadosPercentual['percentual_de'],$dadosPercentual['percentual_a'],$dadosPercentual['data_inicial'],$dadosPercentual['data_final']) ){ $comissionamentoId = $cont++; } else { $this->setGerenteId($e); $this->setPercentualDe($dadosPercentual['percentual_de']); $this->setPercentualA($dadosPercentual['percentual_a']); $this->setComissao($dadosPercentual['comissao']); $this->setPrazo($dadosPercentual['prazo']); $this->setTipoProduto($dadosPercentual['tipo_produto']); $this->setBancoId($dadosPercentual['banco_id']); $this->setConvenioId($dadosPercentual['convenio_id']); $this->setTabelaId($dadosPercentual['tabela_id']); $this->setDataInicial($dadosPercentual['data_inicial']); $comissionamentoId = $this->salvar($this); } } if($comissionamentoId > 0){ $cont++; } } return $cont; } /** * Verifica se a comissão existe * @param int $supervisorId * @param int $bancoId * @param int $tipoProduto * @param int $prazo * @return boolean */ public function existeComissao($supervisorId, $bancoId, $tabelaId, $convenioId, $tipoProduto, $prazo, $comissao, $percentualDe, $percentualA, $dataInicial,$dataFinal) { $dbtable = new Model_DbTable_PercentualSupervisor(); $params = array("excluido <> 1"); if( $tipoProduto > 0 ){ $params[] = "tipo_produto = '{$tipoProduto}'"; } if( $supervisorId > 0 ){ $params[] = "gerente_id = '{$supervisorId}'"; } if( $bancoId > 0 ){ $params[] = "banco_id = '{$bancoId}'"; } if( $tabelaId > 0 ){ $params[] = "tabela_id = '{$tabelaId}'"; } if( $convenioId > 0 ){ $params[] = "convenio_id = '{$convenioId}'"; } if( $prazo != '' ){ $params[] = "prazo = '{$prazo}'"; } if( $comissao > 0 ){ $params[] = "comissao = '{$comissao}'"; } if( $percentualDe > 0 ){ $params[] = "percentual_de = '{$percentualDe}'"; } if( $percentualA > 0 ){ $params[] = "percentual_a = '{$percentualA}'"; } if( $dataInicial > 0 ){ $params[] = "data_inicial = '{$dataInicial}'"; } if( $dataFinal > 0 ){ $params[] = "data_final = '{$dataFinal}'"; } $where = implode(" AND ", $params); $result = $dbtable->fetchRow($where); if( $result != null ){ return $result; } return false; } public function atualizarPercentual($id, $percentualDe, $percentualA, $comissao) { $dbtable = new Model_DbTable_PercentualSupervisor(); $percentuais = array( 'percentual_de' => $percentualDe, 'percentual_a' => $percentualA, 'comissao' => $comissao ); $filter = array_filter($percentuais); if( $id > 0){ $result = $dbtable->update($filter, "id = " . $id); return $result; } return null; } //exportar para outras tabelas, com o percentual atual public function exportarPercentual($dadosPost, $outrosPercentuais) { $dbtable = new Model_DbTable_PercentualSupervisor(); $params = array("excluido <> 1"); $params[] = "tabela_id = '{$outrosPercentuais['tabela_id']}'"; $params[] = "convenio_id = '{$outrosPercentuais['convenio_id']}'"; $where = implode(" AND ", $params); if( $dadosPost > 0 ){ switch($dadosPost['operacao']){ case '+': $comissao = $dadosPost['alterar_comissao'] + $outrosPercentuais['comissao']; break; case '=': $comissao = $dadosPost['alterar_comissao']; break; case '-': $comissao = $outrosPercentuais['comissao'] - $dadosPost['alterar_comissao']; $comissao = number_format($comissao,6,'.','.'); break; } $percentual = array("comissao" => $comissao); return $dbtable->update($percentual, $where); } return false; } //exportar para outros prazos public function exportarPercentualPrazo($dadosPost, $percentuaisInsert) { $dbtable = new Model_DbTable_PercentualSupervisor(); $values = $percentuaisInsert->toArray(); $values['prazo'] = $dadosPost['prazo']; unset($values['id']); if( $dadosPost > 0 ){ return $dbtable->insert($values); } return false; } //valor de comissão supervisor baseado na permissao pagar-comissao-supervisor (permissão para pagar a comissão individual do supervisor) public function getColunaValorComissaoSupervisor() { //pagar-comissão-individual*-supervisor ou por faixa de valor $ns = new Zend_Session_Namespace(); $individual = $ns->acl->isAllowed(Yuppie_Auth::getIdentity()->grupo, 'pagar-comissao-supervisor'); return $individual ? 'gerentes_rotas.valor_comissao' : 'faixas_valor.comissao'; } //calcular comissao para puxar as faixas de valores public function getBaseCalculoComissao() { return '(contratos.comissao_corretor / (contratos.comissao_empresa - if(bancos.margem is not null, bancos.margem, 0)) * 100)'; } }
💾 保存文件
← 返回文件管理器