✏️ 正在编辑: Convenio.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/application/models/Convenio.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_Convenio { private $_id; private $_codigo; private $_nome; private $_parentId; private $_aumentoSalarial; private $_valorBase; private $_exibirSimulacaoAberta; private $_permitirDigitacaoAutomatica; public function getId() { return $this->_id; } public function setId($id) { $this->_id = $id; } function getAumentoSalarial() { return $this->_aumentoSalarial; } function setAumentoSalarial($aumentoSalarial) { $this->_aumentoSalarial = $aumentoSalarial; } public function getCodigo() { return $this->_codigo; } public function setCodigo($codigo) { $this->_codigo = $codigo; } public function getNome() { return $this->_nome; } public function setNome($nome) { $this->_nome = $nome; } public function getParentId() { return $this->_parentId; } public function setParentId($parentId) { $this->_parentId = $parentId; } public function getValorBase() { return $this->_valorBase; } public function setValorBase($valorBase) { $this->_valorBase = String_Refatorar::parseStringToFloat($valorBase); } public function getExibirSimulacaoAberta() { return $this->_exibirSimulacaoAberta; } public function setExibirSimulacaoAberta($valor) { $this->_exibirSimulacaoAberta = $valor; } public function getPermitirDigitacaoAutomatica() { return $this->_permitirDigitacaoAutomatica; } public function setPermitirDigitacaoAutomatica($permitirDigitacaoAutomatica) { $this->_permitirDigitacaoAutomatica = $permitirDigitacaoAutomatica ?? 0; } 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_Convenio(); $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_Convenio $convenio */ public function salvar(Model_Convenio $convenio) { $dbtable = new Model_DbTable_Convenio(); if( $convenio->getId() > 0 ){ $dbtable->update($convenio->_toArray(), 'id = ' . $convenio->getId()); // Se tiver atualizado parent_id, altera todas as tabelas que fazem // Referência a este convênio, para fazerem ao convênio pai $parentId = $convenio->getParentId(); if( $parentId > 0 ){ $dbBonus = new Model_DbTable_Bonus(); $dbBonus->update(array( 'convenio_id' => $parentId ), 'id = ' . $convenio->getId()); $dbCallcenterProposta = new Model_DbTable_CallcenterProposta(); $dbCallcenterProposta->update(array( 'convenio_id' => $parentId ), 'convenio_id = ' . $convenio->getId()); $dbCampanhaConvenio = new Model_DbTable_CampanhaConvenio(); $dbCampanhaConvenio->update(array( 'convenio_id' => $parentId ), 'convenio_id = ' . $convenio->getId()); $dbComissionamento = new Model_DbTable_Comissionamento(); $dbComissionamento->updateComissionamento(array( 'convenio_id' => $parentId ), 'convenio_id = ' . $convenio->getId()); $dbComissionamentoCorretor = new Model_DbTable_ComissionamentoCorretor(); $dbComissionamentoCorretor->updateComissionamento(array( 'convenio_id' => $parentId ), 'convenio_id = ' . $convenio->getId()); $dbComissionamentoGrupo = new Model_DbTable_ComissionamentoGrupo(); $dbComissionamentoGrupo->updateComissionamento(array( 'convenio_id' => $parentId ), 'convenio_id = ' . $convenio->getId()); $dbContrato = new Model_DbTable_Contrato(); $dbContrato->updateConvenio($parentId, $convenio->getId()); $dbGerenteConvenio = new Model_DbTable_GerentePromotoraConvenio(); $dbGerenteConvenio->update(array( 'convenio_id' => $parentId ), 'convenio_id = ' . $convenio->getId()); $dbPerformance = new Model_DbTable_Performance(); $dbPerformance->update(array( 'convenio_id' => $parentId ), 'convenio_id = ' . $convenio->getId()); $dbTabela = new Model_DbTable_Tabela(); $dbTabela->update(array( 'convenio_id' => $parentId ), 'convenio_id = ' . $convenio->getId()); $dbTabelaFator = new Model_DbTable_TabelaFator(); $dbTabelaFator->update(array( 'convenio_id' => $parentId ), 'convenio_id = ' . $convenio->getId()); } return $convenio->getId(); } else { return $dbtable->insert($convenio->_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_Convenio(); 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_Convenio(); 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_Convenio(); return $dbtable->fetchRow("id = " . $id); } /** * Verifica se o registro passado por parâmetro existe * @param string $nome * @return array|null */ public function existe($nome) { $dbtable = new Model_DbTable_Convenio(); return $dbtable->fetchRow("nome = '" . $nome . "'"); } public function getConvenios($where = null, $order = "nome ASC") { $dbtable = new Model_DbTable_Convenio(); $values = $dbtable->fetchAll($where, $order); $convenios = array(); foreach ( $values as $value ) { $convenios[$value['id']] = $value['nome']; } return $convenios; } public function getOrCreateConvenio($descricao = null, $codigo = null) { $where = []; if ($descricao) { $where = ["nome = ?" => $descricao]; } if ($codigo) { $where['codigo = ?'] = $codigo; } if (empty($where)) { return 0; } $convenio = (new Model_DbTable_Convenio())->fetchRow($where); if (empty($convenio)) { $modelConvenio = new Model_Convenio(); $modelConvenio->setNome($descricao ?? $codigo); $modelConvenio->setCodigo($codigo); $modelConvenio->setExibirSimulacaoAberta(false); return $modelConvenio->salvar($modelConvenio); } return !empty($convenio->parent_id) ? $convenio->parent_id : $convenio->id; } public function getConveniosAndTabelas($fields = array()) { $dbtable = new Model_DbTable_Convenio(); $select = $dbtable->getAdapter()->select()->from(array( 'convenios' => 'tb_convenios' ), array( 'convenio' => 'convenios.nome', 'id_convenio' => 'convenios.id' )) ->joinLeft(array( 'tabelas' => 'tb_tabelas' ), 'tabelas.convenio_id = convenios.id', array( 'tabela' => 'tabelas.nome', 'tabela_id' => 'tabelas.id' )) ->where('convenios.excluido <> 1') ->where('tabelas.excluido <> 1') ->where("tabelas.banco_id = '" . $fields['banco_id'] . "'") ->where("(tabelas.parent_id is null or tabelas.parent_id = 0)") ->where("convenios.id = '" . $fields['convenio_id'] . "'") ->group(array( "convenios.id", "tabelas.id" )); return $dbtable->getAdapter()->fetchAll($select, '', Zend_Db::FETCH_OBJ); } public function getConveniosPrazos($convenioId) { $dbtable = new Model_DbTable_ConvenioPrazo(); $select = $dbtable->getAdapter()->select()->from(array( 'convenios_prazos' => 'tb_convenios_prazos' ), array( 'prazo_de', 'prazo_a' )) ->where('convenios_prazos.excluido <> 1') ->where("convenios_prazos.convenio_id = '" . $convenioId . "'") ->group('convenios_prazos.id') ->order('convenios_prazos.prazo_de ASC'); return $dbtable->getAdapter()->fetchAll($select, '', Zend_Db::FETCH_OBJ); } public function getPercentuaisGrupos($fields = array()) { $dbtable = new Model_DbTable_ComissionamentoGrupoPercentual(); $select = $dbtable->getAdapter()->select()->from(array( "comissionamento" => 'tb_comissionamento_grupo' )) ->where("convenio_id = " . $fields['convenio_id']) ->where("grupo_id = " . $fields['grupo_id']) ->where("tipo_produto LIKE '" . $fields['tipo'] . "'") ->where("base_comissao LIKE '" . $fields['base_comissao'] . "'") ->where("banco_id = " . $fields['banco_id']) ->where("comissionamento.excluido <> 1") ->order("prazo_de"); $result = $dbtable->getAdapter()->fetchAll($select, '', Zend_Db::FETCH_OBJ); $arrComissao = array(); if( $result ){ foreach ( $result as $registros ) { $comissao = $dbtable->fetchRow("(data_final IS NULL OR data_final = '0000-00-00') AND comissionamento_id = " . $registros->id); $arrComissao[$registros->tabela_id][$registros->prazo_de][$registros->prazo_a] = array( 'comissao_avista' => $comissao['comissao'], 'comissao_antecipada' => $comissao['adiantamento'], 'comissao_diferida' => $comissao['diferimento'] ); } } return $arrComissao; } public function getPercentuaisEmpresa($fields = array()) { $dbtable = new Model_DbTable_ComissionamentoPercentual(); $select = $dbtable->getAdapter()->select()->from(array( "comissionamento" => 'tb_comissionamento' )) ->where("convenio_id = " . $fields['convenio_id']) ->where("tipo_produto LIKE '" . $fields['tipo'] . "'") ->where("base_comissao_empresa LIKE '" . $fields['base_comissao_empresa'] . "'") ->where("banco_id = " . $fields['banco_id']) ->where("excluido <> 1") ->order("prazo_de"); $result = $dbtable->getAdapter()->fetchAll($select, '', Zend_Db::FETCH_OBJ); $arrComissao = array(); if( $result ){ foreach ( $result as $registros ) { $comissao = $dbtable->fetchRow("(data_final IS NULL OR data_final = '0000-00-00') AND comissionamento_id = " . $registros->id); $arrComissao[$registros->tabela_id][$registros->prazo_de][$registros->prazo_a] = array( 'comissao_avista' => $comissao->comissao, 'comissao_antecipada' => $comissao->adiantamento, 'comissao_diferida' => $comissao->diferimento ); } } return $arrComissao; } public function getConvenioAumentoSalario($id) { $dbtable = new Model_DbTable_Convenio(); $select = $dbtable->getAdapter()->select()->from('tb_convenios') ->where('excluido = 0 AND aumento_salarial = 1') ->where('id = ?', $id); return $dbtable->getAdapter()->fetchRow($select); } }
💾 保存文件
← 返回文件管理器