✏️ 正在编辑: Comissionamento.php
路径:
/srv/systems_dir/yuppiecred-bkp/application/models/Comissionamento.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Model_Comissionamento extends Model_Abstract_Comissionamento { private $_empresaId; public function getEmpresaId() { return $this->_empresaId; } public function setEmpresaId($empresaId) { $this->_empresaId = $empresaId; } /** * Retorna uma lista * @param string $where * @param string $order * @param int $count * @param int $offset * @return array */ public function listar($fields, $order = 'produto ASC') { $params = array(); $where = null; if( isset($fields['empresa_id']) && !empty($fields['empresa_id']) ){ $params[] = "empresa_id = " . $fields['empresa_id']; } if( isset($fields['grupo_comissao']) && !empty($fields['grupo_comissao']) ){ $params[] = "grupo_comissao = " . $fields['grupo_comissao']; } if( isset($fields['produto']) && !empty($fields['produto']) ){ $params[] = "produto = '" . $fields['produto'] . "'"; } if( isset($fields['tipo_produto']) && !empty($fields['tipo_produto']) ){ $params[] = "tipo_produto = '" . $fields['tipo_produto'] . "'"; } if( isset($fields['data_validade']) && !empty($fields['data_validade']) ){ $params[] = "data_validade = STR_TO_DATE('" . $fields['data_validade'] . "', '%d/%m/%Y')"; } if( isset($fields['tabela_id']) && !empty($fields['tabela_id']) ){ $params[] = "tabela_id = " . $fields['tabela_id']; } if( isset($fields['convenio_id']) && !empty($fields['convenio_id']) ){ $params[] = "convenio_id = " . $fields['convenio_id']; } if( isset($fields['banco_id']) && !empty($fields['banco_id']) ){ $params[] = "banco_id = " . $fields['banco_id']; } if( isset($fields['prazo']) && !empty($fields['prazo']) ){ $params[] = "prazo = '" . $fields['prazo'] . "'"; } if( count($params) > 0 ) $where = implode(" AND ", $params); $dbtable = new Model_DbTable_Comissionamento(); return $dbtable->fetchAll($where, $order); } /** * Verifica se a comissão existe * @param int $bancoId * @param int $produtoId * @param int $prazo * @return boolean */ public function existeComissao($bancoId, $convenioId, $tabelaId, $tipoProduto, $prazoDe, $prazoA, $baseComissao, $taxaDe, $taxaA) { $dbtable = new Model_DbTable_Comissionamento(); $where = "tipo_produto = '" . $tipoProduto . "'" . " AND banco_id = " . $bancoId . " AND convenio_id = " . $convenioId . " AND tabela_id = " . $tabelaId . " AND base_comissao_empresa = '" . $baseComissao . "'" . " AND ((prazo_a >= '{$prazoDe}' AND prazo_de <= '{$prazoDe}') OR " . "(prazo_a >= '{$prazoA}' AND prazo_de <= '{$prazoA}'))" . " AND ((taxa_contrato_a >= '{$taxaDe}' AND taxa_contrato_de <= '{$taxaDe}') OR " . "(taxa_contrato_a >= '{$taxaA}' AND taxa_contrato_de <= '{$taxaA}'))"; $result = $dbtable->fetchRow($where); if( $result != null ){ return $result; } return false; } public function listarPercValido($fields, $order = 'tipo_produto ASC') { if( count($fields) <= 0 ){ throw new Core_Exception('Atenção! Você deve informar pelo menos uma opção de busca.'); } $params = array( "comissionamento.excluido <> 1" ); $where = null; if( !empty($fields['empresa_id']) ){ $params[] = "comissionamento.empresa_id = " . $fields['empresa_id']; } if( !empty($fields['grupo_comissao']) ){ $params[] = "grupo_comissao = " . $fields['grupo_comissao']; } if( !empty($fields['produto']) ){ $params[] = "comissionamento.produto = '" . $fields['produto'] . "'"; } if( !empty($fields['tipo_produto']) ){ $params[] = "comissionamento.tipo_produto = '" . $fields['tipo_produto'] . "'"; } if( !empty($fields['base_comissao_empresa']) ){ $params[] = "comissionamento.base_comissao_empresa = '" . $fields['base_comissao_empresa'] . "'"; } if( !empty($fields['data_validade']) ){ $params[] = "data_validade = STR_TO_DATE('" . $fields['data_validade'] . "', '%d/%m/%Y')"; } if( !empty($fields['tabela_id']) ){ $params[] = "comissionamento.tabela_id = " . $fields['tabela_id']; } if( !empty($fields['convenio_id']) ){ $params[] = "comissionamento.convenio_id = " . $fields['convenio_id']; } if( !empty($fields['banco_id']) ){ $params[] = "comissionamento.banco_id = " . $fields['banco_id']; } if( !empty($fields['prazo_de']) ){ $params[] = "comissionamento.prazo_de >= '" . $fields['prazo_de'] . "'"; } if( !empty($fields['prazo_a']) ){ $params[] = "comissionamento.prazo_a <= '" . $fields['prazo_a'] . "'"; } if( !empty($fields['comissao_ativa']) ){ if( $fields['comissao_ativa'] == 1 ){ $params[] = "perc.id is not null"; }elseif( $fields['comissao_ativa'] == 2 ){ $params[] = "perc.id is null"; } } if( count($params) > 0 ){ $where = implode(" AND ", $params); $dbtable = new Model_DbTable_Comissionamento(); $perc = $dbtable->getAdapter()->select() ->from(array( 'percentual' => 'tb_comissionamento_percentual' )) ->where("percentual.excluido <> 1 AND (percentual.data_final IS NULL OR data_final = '0000-00-00')") ->order('percentual.id DESC'); $percColumns = [ 'perc_comissao' => 'comissao', 'perc_comissao_adiantamento' => 'adiantamento', 'perc_comissao_diferimento' => 'diferimento', 'perc_comissao_bonus' => 'bonus', 'data_cadastro', 'base_comissao_valor', 'base_comissao_adiantamento', 'base_comissao_diferimento', 'base_comissao_bonus', 'perc_data_inicial' => 'data_inicial', 'perc_data_final' => 'data_final', 'perc_data_base' => 'data_base']; $select = $dbtable->getAdapter()->select() ->from(array( 'comissionamento' => 'tb_comissionamento' )) ->joinLeft(array( 'perc' => $perc ), 'perc.comissionamento_id = comissionamento.id', $percColumns) ->joinLeft(array( 'empresas' => 'tb_empresas' ), 'empresas.id = comissionamento.empresa_id', array( 'empresa' => 'empresas.nome' )) ->joinLeft(array( 'bancos' => 'tb_bancos' ), 'bancos.id = comissionamento.banco_id', array( 'banco_nome' => 'nome' )) ->joinLeft(array( 'tabelas' => 'tb_tabelas' ), 'tabelas.id = comissionamento.tabela_id', array( 'tabela_nome' => 'nome' )) ->joinLeft(array( 'convenios' => 'tb_convenios' ), 'convenios.id = comissionamento.convenio_id', array( 'convenio_nome' => 'nome' )) ->where($where) ->order($order); return $dbtable->getAdapter()->fetchAll($select); } } public function getComissaoRecebimento($contratoId) { $dbtable = new Model_DbTable_Contrato(); $selectComissaoPrevista = $dbtable->getAdapter()->select()->from(array( 'c' => 'tb_comissionamento' ), array( 'banco_id', 'empresa_id', 'tabela_id', 'convenio_id', 'produto', 'prazo' )) ->joinInner(array( 'p' => 'tb_comissionamento_percentual' ), 'c.id = p.comissionamento_id', array( 'comissao', 'bonus', 'diferimento', 'adiantamento', 'data_inicial', 'data_final' )) ->where('c.excluido<>1') ->where('p.excluido<>1') ->order("p.id DESC"); $select = $dbtable->getAdapter()->select()->from(array( 'contratos' => 'tb_contratos' ), array()) ->joinInner(array( 'comissoes' => $selectComissaoPrevista ), "comissoes.convenio_id = contratos.convenio_id AND comissoes.tabela_id = contratos.tabela_id AND " . "contratos.produto = comissoes.produto AND contratos.prazo = comissoes.prazo AND " . "contratos.data_emissao >= comissoes.data_inicial AND (contratos.data_emissao <= comissoes.data_final OR comissoes.data_final IS NULL)", array( 'comissao_prevista' => 'comissao', 'bonus_previsto' => 'bonus', 'diferimento_previsto' => 'diferimento', 'adiantamento_previsto' => 'adiantamento' )) ->where("contratos.id = " . $contratoId) ->where("contratos.excluido<>1"); return $dbtable->getAdapter()->fetchRow($select); } }
💾 保存文件
← 返回文件管理器