✏️ 正在编辑: Combos.php
路径:
/srv/systems_dir/yuppiecred-bkp/library/Core/Combos.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php use \Modules\Gatekeeper\Service\Gatekeeper as Gatekeeper; use Modules\Automatizacao\Model\DbTable\OportunidadesNegocioTable; class Core_Combos { public static function getOptions($values, $key = 'id', $description = 'nome', $multi = false) { if( !$multi ) $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { $options[$value[$key]] = is_array($description) ? $value[$description[0]] . " - " . $value[$description[1]] : $value[$description]; } } return $options; } public static function getBancosImportacaoDireta() { return Form_DadosSincronizacao::getArrayBancosValidos(); } public static function getBancosImportacaoCapa() { $options = array( 'ITAU' => 'ITAÚ', 'BONSUCESSO' => 'BONSUCESSO' ); return $options; } public static function getBancosFebrabanOptions($value = 'codigo', $exibirDigitais = true) { $dbtable = new Model_DbTable_BancoFebraban(); $where = null; if (!$exibirDigitais) { $where = "digital <> 1"; } return self::getOptions($dbtable->fetchAll($where, 'nome ASC'), $value, ['nome', 'codigo']); } public static function getFornecedoresOptions() { $model = new Model_Fornecedor(); $values = $model->listar(null, 'nome ASC'); return self::getOptions($values, 'id', 'nome'); } /** * @param null $where * @param bool|null $removerNull * @return array|string[] */ public static function getEmpresasOptions($where = null, ?bool $removerNull = false): array { $dbtable = new Model_DbTable_Empresa(); $values = $dbtable->fetchColumns("id", ["id", "nome"], null, 'nome ASC'); return self::getOptions($values, 'id', 'nome', $removerNull); } public static function getSituacoesOptions() { $options = array( '' => '', 'Pago' => 'Pago', 'A Pagar' => 'A Pagar', ); return $options; } public static function getNiveisEsteiraOptions() { $options = [ '' => '', 0 => 'Esteira livre', 1 => 'Esteira aprovador', 2 => 'Esteira Padrão' ]; return $options; } public static function getCategoriasOptions() { $dbtable = new Model_DbTable_Categoria(); $dados = $dbtable->fetchAllParents('id ASC'); $categoria = new Model_Categoria(); return $categoria->getArrayCategoriasFilhas($dados); } public static function getFormasPagamentoOptions() { $model = new Model_FormaPagamento(); return self::getOptions($model->listar(null, 'descricao ASC'), 'id', 'descricao'); } public static function getOrgaosOptions() { $model = new Model_Orgao(); return self::getOptions($model->listar(null, 'descricao ASC'), 'id', 'descricao'); } public static function getSecretariasOptions() { $model = new Model_Secretaria(); return self::getOptions($model->listar(null, 'descricao ASC'), 'id', 'descricao'); } public static function getTipoRemuneracaoOptions() { $model = new Model_FormaPagamento(); return self::getOptions($model->listarRemuneracao(null, 'descricao ASC'), 'id', 'descricao'); } public static function getContasOptions() { $model = new Model_Conta(); return self::getOptions($model->listar(null, 'nome ASC'), 'id', 'nome'); } public static function getPeriodicidadeOptions() { $options = array( '' => '' ); $options['D7'] = 'Semanal'; $options['D15'] = 'Quinzenal'; $options['M1'] = 'Mensal'; $options['M2'] = 'Bimestral'; $options['M3'] = 'Trimestral'; $options['M6'] = 'Semestral'; $options['M12'] = 'Anual'; return $options; } public static function getGruposUsuariosOptions($where = null) { $where = Gatekeeper::grupoUsuarios($where); $model = new Model_GrupoUsuario(); return self::getOptions($model->listar("nome <> 'Sistema' {$where}", 'nome ASC'), 'id', 'nome'); } public static function getCategoriaPaiOptions() { $front = Zend_Controller_Front::getInstance(); $id = (int) $front->getRequest()->getParam('id'); $dbtable = new Model_DbTable_Categoria(); $dados = $dbtable->fetchAllParents('nome ASC'); $categoria = new Model_Categoria(); return $categoria->getArrayCategoriasFilhas($dados, $id); } public static function getBancosOptions($ativo = true, $value = 'id') { $where = array(); if($ativo){ $where['ativo'] = 1; } if (!empty(Yuppie_Auth::getIdentity()->grupo) && Yuppie_Auth::getIdentity()->grupo == 'Corretor') { $id = Yuppie_Auth::getIdentity()->id; $where['corretor_id'] = $id; } $model = new Model_Banco(); $values = $model->listar($where, 'nome ASC', array("id", "nome")); return self::getOptions($values, $value, 'nome'); } public static function getStatusBorderoOptions() { $options = array( 'Em trânsito' => 'Em trânsito', 'Validado' => 'Validado', 'Aceito incompleto' => 'Aceito incompleto', 'Negado' => 'Negado', ); return $options; } public static function getBancosCreditoPessoalOptions($fields = array()) { $model = new Model_Banco(); $values = $model->listar($fields, 'nome ASC'); return self::getOptions($values, 'id', 'nome'); } public static function getEmpresasFtpOptions() { $model = new Model_EmpresaFtp(); return self::getOptions($model->getBancosFtp('empresa_nome ASC'), 'empresa_id', 'empresa_nome'); } public static function getBancosFtpOptions() { $model = new Model_EmpresaFtp(); return self::getOptions($model->getBancosFtp('banco_nome ASC'), 'banco_id', 'banco_nome'); } public static function getUsuariosFormalizacaoOptions() { $model = new Model_Usuario(); $values = $model->getUsuariosFormalizacao(); return self::getOptions($values, 'id', 'nome'); } public static function getUsuariosPreviaOptions() { return Core_Combos::getSupervisoresOptions(); } public static function getUsuariosPreviaGerenteOptions() { return Core_Combos::getGerentesOptions(); } public static function getUsuariosByGrupoOptions($grupo) { $model = new Model_GrupoUsuario(); $grupoUsuario = $model->exibir($grupo); switch ( $grupoUsuario['nome'] ) { case "Corretor": return Core_Combos::getCorretoresOptions(); case "Supervisor": return Core_Combos::getSupervisoresOptions(); case "Gerente Regional": return Core_Combos::getGerentesOptions(); case "Digitador": return Core_Combos::getDigitadoresOptions(); default: return $options = array( '' => '' ); } } public static function getUsuariosEfetivadosOptions() { $model = new Model_Proposta(); $values = $model->getUsuariosEfetivacao('usuario_efetivacao ASC'); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { $options[$value] = $value; } } return $options; } public static function getUsuariosDigitadosOptions() { $model = new Model_Proposta(); $values = $model->getUsuariosDigitados('usuario_digitado ASC'); return self::getOptions($values, 'usuario_digitado', 'nome'); } public static function getStatusOptions() { $where = "tipo = 'STATUS_PROPOSTA' AND COALESCE(parent_id, 0) = 0"; $dbtable = new Model_DbTable_Tipos(); $values = $dbtable->fetchColumns("id", array("id", "descricao"), $where, "descricao"); return array_filter(self::getOptions($values, 'id', 'descricao')); } public static function getMidiasOrigemOptions() { $model = new Model_MidiaOrigem(); $midias = $model->listar(); return self::getOptions($midias, 'id', 'descricao'); } public static function getEsteiraBancoOptions() { return array( '1' => 'Pendência no banco', '2' => 'Contratos a recuperar' ); } public static function getProdutosOptions($fields = []) { $params = []; if( !empty($fields['banco_id']) ){ $params['banco_id'] = $fields['banco_id']; } if( !empty($fields['tipo']) && in_array($fields['tipo'], Core_Combos::getTiposProdutosOptions()) ){ $params['tipo'] = $fields['tipo']; } $model = new Model_Produto(); $values = $model->listar($params, 'codigo ASC'); if( !$values ){ unset($params['tipo']); $values = $model->listar($params, 'codigo ASC'); } $options = ['' => '']; if( count($values) > 0 ){ foreach ( $values as $value ) { $options[$value['codigo']] = "{$value['codigo']} - {$value['descricao']} ({$value['tipo']})"; } } return $options; } public static function getTiposProdutosOptions() { return array( '' => '', 'ABERTURA DE CONTA' => 'ABERTURA DE CONTA', 'AUMENTO DE MARGEM' => 'AUMENTO DE MARGEM', 'AGREGACAO DE MARGEM' => 'AGREGACAO DE MARGEM', 'AUMENTO SALARIAL' => 'AUMENTO SALARIAL', 'PLASTICO' => 'PLASTICO', 'CARTAO' => 'CARTAO', 'ATIVACAO' => 'ATIVACAO', 'SAQUE' => 'SAQUE', 'SAQUE COM SEGURO' => 'SAQUE COM SEGURO', 'COMPLEMENTAR' => 'COMPLEMENTAR', 'COMPLEMENTAR COM SEGURO' => 'COMPLEMENTAR COM SEGURO', 'COMPRA' => 'COMPRA', 'NOVO' => 'NOVO', 'NOVO COM SEGURO' => 'NOVO COM SEGURO', 'REFINANCIAMENTO' => 'REFINANCIAMENTO', 'REFINANCIAMENTO COM SEGURO' => 'REFINANCIAMENTO COM SEGURO', 'REFINANCIAMENTO RETENCAO' => 'REFINANCIAMENTO RETENCAO', 'REFIN DA PORTABILIDADE' => 'REFIN DA PORTABILIDADE', 'REFIN DA PORTABILIDADE COM SEGURO' => 'REFIN DA PORTABILIDADE COM SEGURO', 'PORTABILIDADE' => 'PORTABILIDADE', 'PORTABILIDADE COM SEGURO' => 'PORTABILIDADE COM SEGURO', 'DEBITO EM CONTA' => 'DEBITO EM CONTA', 'PRE-VENDA 9 LINHAS' => 'PRE-VENDA 9 LINHAS', 'ANTECIPACAO DE 13' => 'ANTECIPACAO DE 13', 'SEGURO' => 'SEGURO', 'REORGANIZACAO UNIFICADO' => 'REORGANIZACAO UNIFICADO' ); } public static function getRotasOptions($multi = false, $where = null) { $dbtable = new Model_DbTable_Rota(); $values = $dbtable->fetchColumns("id", array("id", "nome"), null, "nome"); return self::getOptions($values, 'id', 'nome', $multi); } public static function getRotasSupervisorOptions($where = null) { $model = new Model_Rota(); if( Yuppie_Auth::getIdentity()->grupo == 'Supervisor' ){ $where = "gerente_id = " . Yuppie_Auth::getIdentity()->id; } $values = $model->listar($where, 'nome ASC'); return self::getOptions($values); } public static function getSupervisoresOptions() { $where = null; if( Yuppie_Auth::getIdentity()->grupo == 'Supervisor' ){ $where = "id = " . Yuppie_Auth::getIdentity()->id; } $dbtable = new Model_DbTable_GerenteRota(); $values = $dbtable->fetchColumns("id", array("id", "nome"), $where, "nome"); return self::getOptions($values, 'id', 'nome'); } public static function getAssistentesOptions() { $dbtable = new Model_DbTable_UsuariosRedeAtendimento(); $values = $dbtable->getAssistentes(); return self::getOptions($values); } public static function getTabelasOptions($convenioId = 0, $bancoId = 0, $tabelaId = 0) { if($tabelaId){ $where = "tb_tabelas.id = $tabelaId"; } else { $where = [ "COALESCE(tb_tabelas.parent_id, 0) = 0", "COALESCE(tb_tabelas.tabela_desativada, 0) = 0" ]; if($convenioId){ if( is_array($convenioId) ){ $where[] = "convenio_id IN (".implode(",", $convenioId).")"; } else { $where[] = "convenio_id = $convenioId"; } } if($bancoId){ $where[] = "banco_id = $bancoId"; } } $dbtable = new Model_DbTable_Tabela(); $field = "CONCAT(tb_tabelas.nome, ' [', IFNULL(tb_convenios.nome, 'SEM CONVÊNIO'), ' ', IFNULL(tb_bancos.nome, 'SEM BANCO'), ']')"; $values = $dbtable->fetchPairs($field, $where, 'tb_tabelas.nome'); return array( '' => '' ) + $values; } public static function getCidadesOptions($id) { $params = ["id <> ?" => $id, "COALESCE(parent_id, 0) = 0"]; $model = new Model_Cidade(); $values = $model->listar($params, 'nome ASC'); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { if( $value['uf'] ){ $value['nome'] .= ' - ' . $value['uf']; } $options[$value['id']] = $value['nome']; } } return $options; } public static function getCorretoresOptions($ocultarDesativados = false, $where = array(), $ajax = false) { if(Yuppie_Auth::getIdentity()->grupo == 'Supervisor'){ return Core_Combos::getCorretoresBySupervisorOptions(); } if( !empty(Yuppie_Auth::getIdentity()->forma_equipe) ){ return Core_Combos::getCorretoresByEquipeOptions(); } if( $ocultarDesativados ){ $where[] = "corretor_desativado <> 1"; } $ns = new Zend_Session_Namespace(); $acl = $ns->acl; if( Yuppie_Auth::getIdentity()->grupo == 'Corretor' ){ $where[] = "id = " . Yuppie_Auth::getIdentity()->id; } elseif( !empty(Yuppie_Auth::getIdentity()->corretor_id) && $acl->isAllowed(Yuppie_Auth::getIdentity()->grupo, 'nao-ver-outros-corretores')){ $where[] = "id = " . Yuppie_Auth::getIdentity()->corretor_id; } $dbtable = new Model_DbTable_Corretor(); $values = $dbtable->fetchColumns(array('id', 'nome', 'apelido'), $where, 'nome ASC'); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { $value['apelido'] = $value['apelido'] == '' ? '' : " ({$value['apelido']}) "; $nome = "{$value['nome']}{$value['apelido']}[ ID {$value['id']} ]"; if($ajax){ $options[$nome] = $value['id']; } else { $options[$value['id']] = $nome; } } } return $options; } public static function getCorretoresBySupervisorOptions() { $modelRotas = new Model_Rota(); $where = 'gerente_id = ' . Yuppie_Auth::getIdentity()->id; $rotas = $modelRotas->listar($where, 'nome ASC'); if( $rotas->count() <= 0 ){ return array('' => ''); } $ids = array(); foreach ( $rotas as $rota ) { array_push($ids, $rota['id']); } $ids = join(",", $ids); $where = "corretor_desativado <> 1 AND rota_id IN ($ids)"; $dbtable = new Model_DbTable_Corretor(); $values = $dbtable->findAll($where, 'nome'); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { $value['apelido'] = $value['apelido'] == '' ? '' : " ({$value['apelido']}) "; $options[$value['id']] = "{$value['nome']}{$value['apelido']}[ ID {$value['id']} ]";; } } return $options; } public static function getCorretoresPagarComissaoOptions($params = null, $ajax = false) { $dbtable = new Model_DbTable_Corretor(); $cols = array( "nome", "apelido", new Zend_Db_Expr("CASE WHEN bloquear_pagamento <> 1 THEN id ELSE CONCAT('block_', id) END as id") ); $select = $dbtable->select()->setIntegrityCheck(false) ->from(Model_DbTable_Corretor::getViewName(), $cols) ->order('nome ASC'); if( count($params) > 0 ){ $where = implode(' AND ', $params); $select->where($where); } $values = $dbtable->fetchAll($select); $options = array( '' => '' ); if ( count($values) > 0 ){ foreach ( $values as $value ) { $nome = $value['nome']; $nome .= $value['apelido'] == '' ? '' : " ({$value['apelido']})"; if (!is_numeric($value['id'])) { preg_match("/[^block_][0-9]*/", $value['id'], $matches); $nome .= " [ PAGAMENTO BLOQUEADO ] [ ID {$matches[0]} ]"; } else { $nome .= " [ ID {$value['id']} ]"; } if ($ajax) { $options[$nome] = $value['id']; } else { $options[$value['id']] = $nome; } } } return $options; } public static function getCorretoresByEquipeOptions() { $modelEquipe = new Model_UsuariosEquipe(); $where = 'usuario_id = ' . Yuppie_Auth::getIdentity()->id; $corretores = $modelEquipe->listar($where); if( $corretores->count() <= 0 ){ return array('' => ''); } $ids = array(); foreach ( $corretores as $corretor ) { array_push($ids, $corretor['corretor_id']); } $ids = join(",", $ids); $where = "corretor_desativado <> 1 AND id IN ($ids)"; $dbtable = new Model_DbTable_Corretor(); $values = $dbtable->findAll($where, 'nome'); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { $value['apelido'] = $value['apelido'] == '' ? '' : " ({$value['apelido']}) "; $options[$value['id']] = "{$value['nome']}{$value['apelido']}[ ID {$value['id']} ]";; } } return $options; } public static function getFiltroCampanhasOptions() { return array( '' => '', '1' => 'SIM', '-1' => 'NÃO' ); } public static function getConveniosOptions() { $dbtable = new Model_DbTable_Convenio(); $values = $dbtable->fetchPairs("nome", 'COALESCE(parent_id, 0) = 0'); return array( '' => '' ) + $values; } public static function getConveniosSimulacaoAbertaOptions() { $dbtable = new Model_DbTable_Convenio(); return $dbtable->fetchPairs("nome", ['COALESCE(parent_id, 0) = 0', 'exibir_simulacao_aberta = 1']); } public static function getSituacaoPendenciaFisicoOptions() { return array( '' => '', 'EM TRANSITO' => 'EM TRANSITO', 'NAO RECEBIDO' => 'NÃO RECEBIDO', 'RECEBIDO' => 'RECEBIDO', ); } public static function getSituacaoContratosRecuperarOptions() { return array( '' => '', '-1' => 'Não resolvido', '1' => 'Resolvido' ); } public static function getRespostaContratosRecuperarOptions() { return array( '' => '', '-1' => 'Recusado', '1' => 'Aceito' ); } /** * @param bool|null $ativos * @return array|string[] */ public static function getCallcenterOperadoresOptions(?bool $ativos = false) { $model = new Model_CallcenterOperador(); $fields['grupos'] = Model_GrupoUsuario::getIdCallcenter(); $values = $model->listar($fields, 'login ASC', $ativos); return self::getOptions($values, 'id', 'login'); } public static function getCallcenterStatusOptions() { $model = new Model_CallcenterStatusAtendimento(); $values = $model->listar(null, 'descricao ASC'); $options = self::getOptions($values, 'descricao', 'descricao'); $options['SEM_STATUS'] = 'SEM STATUS'; //pelas caridades se alterar aqui altere tb em Form_CallcenterAtendimento unset($options['EFETIVADO']); asort($options); return $options; } public static function getOportunidadeStatusOptions() { $model = new Model_DbTable_CallcenterStatusAtendimento(); $values = $model->fetchAll('exibir_oportunidades = 1'); $options = self::getOptions($values, 'descricao', 'descricao'); asort($options); return $options; } /** * @return array */ public static function getCallcenterCampanhasAtivas(): array { return self::getCallcenterCampanhasOptions(null, null, true); } /** * @param false $onlyDiscadorPredictivo * @param null $status * @param bool|null $ativa * @return array */ public static function getCallcenterCampanhasOptions( $apenasDiscadorPredictivo = false, $status = null, ?bool $ativa = false, $apenasPermitirConsultar = false ) { $dbCampanha = new Model_DbTable_CallcenterCampanha(); $select = $dbCampanha->select() ->setIntegrityCheck(false) ->from('tb_callcenter_campanhas', ['id', 'nome']) ->order('nome ASC'); if ($apenasDiscadorPredictivo) { $select->where("codigo IS NOT NULL AND codigo <> '' AND codigo <> '0'"); } if ($ativa) { $select->where("situacao in ('ATIVA', 'LIBERADA')"); } if ($apenasPermitirConsultar) { $select->where("tb_callcenter_campanhas.escolher_cliente = 1"); } switch (strtolower(Yuppie_Auth::getIdentity()->grupo)){ case 'callcenter' : list($tabela, $coluna) = ['tb_callcenter_campanha_operadores', 'operador_id']; break; case 'supervisor' : list($tabela, $coluna) = ['tb_callcenter_campanha_supervisores', 'supervisor_id']; break; } if (isset($tabela, $coluna)){ $select->joinInner($tabela, "$tabela.campanha_id = tb_callcenter_campanhas.id AND $tabela.excluido<>1", []) ->where("$tabela.$coluna = ". Yuppie_Auth::getIdentity()->id); } if( !empty($status) ){ $select->where("tb_callcenter_campanhas.situacao IN (?)", $status); } $select->where("tb_callcenter_campanhas.excluido<>1"); $options = []; foreach ($dbCampanha->getAdapter()->fetchAll($select) as $row){ $options[$row['id']] = $row['nome']; } asort($options); return $options; } public static function getCallcenterCampanhasClientesOptions() { $model = new Model_CallcenterCampanha(); $options = self::getOptions($model->consultaClientes(null, 'nome ASC')); asort($options); return $options; } public static function getCallcenterUfs() { $model = new Model_CallcenterBase(); $values = $model->getUfs(); $options = array( "" => "" ); foreach ( $values as $value ) { $options[strtoupper(trim($value['uf']))] = strtoupper(trim($value['uf'])); } return $options; } public static function getGerentesOptions() { $model = new Model_Gerente(); return self::getOptions($model->listar(null, 'nome ASC')); } public static function getFormasLiberacaoOptions() { return array( '' => '', 'C/C' => 'C/C', //conta corrente 'C/P' => 'C/P', //conta poupanca 'O/P' => 'O/P', 'DOC' => 'DOC', 'CAIXA' => 'CAIXA', 'LIBERACAO VIA OP' => 'LIBERACAO VIA OP', 'LIBERACAO VIA TED' => 'LIBERACAO VIA TED', 'LIBERACAO VIA DOC' => 'LIBERACAO VIA DOC', 'LIBERACAO VIA MEO' => 'LIBERACAO VIA MEO', 'PORTABILIDADE' => 'PORTABILIDADE', 'CHEQUE ADM' => 'CHEQUE ADM', 'VALE-POSTAL' => 'VALE-POSTAL' ); } public static function getMotivoDesligamentoOptions() { return array( '' => '', 'DEMISSAO S/ JUSTA CAUSA' => 'DEMISSAO S/ JUSTA CAUSA', 'PEDIDO DEMISSAO' => 'PEDIDO DEMISSAO', 'DEMISSAO JUSTA CAUSA' => 'DEMISSAO JUSTA CAUSA' ); } public static function getModeloDesligamentoOptions() { return array( '' => '', 'AVISO INDENIZADO' => 'AVISO INDENIZADO', 'AVISO TRABALHADO' => 'AVISO TRABALHADO', ); } public static function getCallcenterGruposUsuariosOptions() { $model = new Model_GrupoUsuario(); $ids = Model_GrupoUsuario::getIdCallcenter(); $grupos = $model->listar('id IN (' . implode(',', $ids) . ')', 'nome ASC'); return self::getOptions($grupos, 'id', 'nome'); } public static function getGruposComissaoOptions() { $where = "tipo = 'GRUPO_COMISSAO'"; $dbtable = new Model_DbTable_Tipos(); $gruposComissao = $dbtable->fetchColumns("id", array("id", "descricao"), $where, 'descricao'); return self::getOptions($gruposComissao, 'id', 'descricao'); } public static function getPropectoClassificacoesOptions() { $model = new Model_DbTable_ProspectoContato(); $values = $model->getClassificacoes(); return self::getOptions($values, 'id', 'descricao'); } public static function getUsuariosOptions() { $model = new Model_Usuario(); $values = $model->listar(null, array( 'nome', 'login' )); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { $options[$value['id']] = $value['nome'] ? $value['nome'] : $value['login']; } } return $options; } public static function getUsuariosLoginOptions() { $model = new Model_Usuario(); $values = $model->listar(['desativado' => 0], ['nome', 'login']); $options = ['' => '']; if (empty($values)) { return $options; } foreach ($values as $value) { $options[$value['login']] = $value['nome'] ?? $value['login']; } return $options; } public static function getDigitadoresOptions() { $model = new Model_Usuario(); $values = $model->listar(null, array( 'nome', 'login' )); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { $options[$value['login']] = $value['login']; } } return $options; } public static function getSubestabelecidosOptions() { $model = new Model_Parceiro(); return self::getOptions($model->listar(null, 'nome ASC')); } public static function getSetoresOptions() { $dbtable = new Model_DbTable_Setor(); $dados = $dbtable->fetchAllParents('nome ASC'); $setores = array( '' => '' ); foreach ( $dados as $parent ) { $setores[$parent['nome']] = $parent['nome']; } return $setores; } public static function getSetoresCadastroOptions() { $dbtable = new Model_DbTable_Setor(); $dados = $dbtable->fetchAllParents('nome ASC'); $setores = array( '' => '' ); foreach ( $dados as $parent ) { $setores[$parent['id']] = $parent['nome']; } return $setores; } public static function getSubSetoresOptions() { $dbtable = new Model_DbTable_Setor(); $dados = $dbtable->fetchAllParents('nome ASC'); $setores = array( '' => '' ); foreach ( $dados as $parent ) { foreach ( $parent['children'] as $setor ) { $setores[$parent['nome']][$setor['nome']] = $setor['nome']; } } return $setores; } public static function getFuncionariosOptions() { $params = array( 'tipo = "FUNCIONARIO"' ); if( Yuppie_Auth::getIdentity()->funcionario_id > 0 ){ $params[] = "id = " . Yuppie_Auth::getIdentity()->funcionario_id; } $where = implode(" AND ", $params); $model = new Model_Funcionario(); $options = $model->listar($where, 'nome ASC'); return self::getOptions($options); } public static function getFuncionariosDespesaOptions() { $params = ['tipo = "FUNCIONARIO"']; $where = implode(" AND ", $params); $model = new Model_Funcionario(); $options = $model->listar($where, 'nome ASC'); return self::getOptions($options); } public static function getCampanhasOptions() { $model = new Model_Campanha(); return self::getOptions($model->listar(null, 'descricao ASC'), 'id', 'descricao'); } public static function getTiposContasOptions() { return array( '' => '', 'CC' => 'CC', 'CP' => 'CP' ); } public static function getTiposVendaOptions() { return array( '' => '', 1 => 'BALCÃO', 2 => 'PARCEIRO', 3 => 'PARCEIRO + BALCÃO', 4 => 'MARKETING DIGITAL' ); } public static function getKeysTiposProdutosOptions() { $model = new Model_TipoProduto(); return current($model->listar(null, 'descricao ASC')); } public static function getStatusFormalizacaoOptions() { return [ 'fisico-pendente-dentro-prazo' => 'Físico pendente dentro do prazo', 'fisico-pendente-alem-prazo' => 'Físico pendente além do prazo', 'doc-pendente' => 'Documentação pendente', 'previa' => 'Com prévia', 'sem-previa' => 'Sem prévia', 'formalizado' => 'Formalizado', 'sem-pendencia' => 'Sem Pendência' ]; } public static function getContratoPagoOptions() { return array( '' => '', 1 => 'PAGO', -1 => 'NÃO PAGO' ); } public static function getBonificacoes() { $bonificacao = new Model_Bonificacao(); return self::getOptions($bonificacao->listar(array(), 'descricao ASC'), 'id', 'descricao'); } public static function getUfOptions() { return array( '' => '', 'AC' => 'AC', 'AL' => 'AL', 'AM' => 'AM', 'AP' => 'AP', 'BA' => 'BA', 'CE' => 'CE', 'DF' => 'DF', 'ES' => 'ES', 'GO' => 'GO', 'MA' => 'MA', 'MG' => 'MG', 'MS' => 'MS', 'MT' => 'MT', 'PA' => 'PA', 'PB' => 'PB', 'PE' => 'PE', 'PI' => 'PI', 'PR' => 'PR', 'RJ' => 'RJ', 'RN' => 'RN', 'RO' => 'RO', 'RR' => 'RR', 'RS' => 'RS', 'SC' => 'SC', 'SE' => 'SE', 'SP' => 'SP', 'TO' => 'TO' ); } public static function getCorretoresVerificarOptions() { $model = new Model_DbTable_Corretor(); $values = $model->findAll('COALESCE(corretor_desativado, 0) = 0', 'nome ASC'); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { if( $value['apelido'] != '' ){ $options[$value['id']] = $value['nome'] . " ( {$value['apelido']} )" . " [ ID {$value['id']} ]"; } else { $options[$value['id']] = $value['nome'] . " [ ID {$value['id']} ]"; } } } return $options; } public static function getTipoSolicitacaoOptions() { return array( '' => '', 'ADIANTAMENTO VIAGEM' => 'ADIANTAMENTO VIAGEM', 'MATERIAL DE ESCRITORIO' => 'MATERIAL DE ESCRITÓRIO', 'MATERIAL DE LIMPEZA' => 'MATERIAL DE LIMPEZA', 'MATERIAL DE INFORMATICA' => 'MATERIAL DE INFORMATICA', 'PATROCINIO' => 'PATROCINIO', 'OUTROS' => 'OUTROS' ); } public static function getTipoComissaoValorOptions() { return array( 'VALOR LIQUIDO' => 'VALOR LÍQUIDO', 'VALOR BRUTO' => 'VALOR BRUTO' ); } public static function getEstadoCivilOptions() { return array( '' => '', 'Solteiro' => 'Solteiro(a)', 'Casado' => 'Casado(a)', 'Viuvo' => 'Viúvo(a)', 'Uniao Estavel' => 'União Estável' ); } public static function getSimNaoOptions() { return array( '' => '', '1' => 'SIM', '-1' => 'NÃO' ); } public static function getTipoMoradiaOptions() { return array( '' => '', 'Propria' => 'Própria', 'Alugada' => 'Alugada', 'Outros' => 'Outros', ); } public static function getTipoDeComprovateOptions() { return array( '' => '', 'Contra Cheque' => 'Contra Cheque', 'Pro Labora' => 'Pró Labora', 'Imposto Renda' => 'Imposto de Renda' ); } public static function getSituacoesReceitaOptions() { $options = array( '' => '', 'Recebido' => 'Recebido', 'A Receber' => 'A Receber', ); return $options; } public static function getStatusChamado() { return array( '', 'Andamento', 'Finalizado' ); } public static function getAssuntosChamadosOptions($value = 'codigo') { $dbtable = new Model_DbTable_Tipos(); $where = "tipo = 'ASSUNTO_CHAMADOS'"; $values = $dbtable->fetchAll($where); return self::getOptions($values, $value, 'descricao'); } public static function getAssuntosPropostasOptions($value = 'codigo') { $dbtable = new Model_DbTable_Tipos(); $where = "tipo = 'ASSUNTO_PROPOSTAS'"; $values = $dbtable->fetchAll($where); return self::getOptions($values, $value, 'descricao'); } public static function getAssuntosSimulacoesOptions($value = 'codigo') { return [ 1 => 'Nova simulação', 2 => 'Solicitação de contato', ]; } public static function getCodigoUsuarioCorretorOptions($corretorId = null) { if( Yuppie_Auth::getIdentity()->grupo == 'Corretor' ){ $corretorId = Yuppie_Auth::getIdentity()->id; } if( !$corretorId ){ return null; } $model = new Model_CorretorSenha(); $values = $model->getSenhasByCorretor($corretorId, 'senha'); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { $options[$value['id']] = $value['banco'] . " - " . $value['senha']; } } return array_filter($options); } public static function getMotivoLigacaoOptions() { $dbtable = new Model_DbTable_Tipos(); $rs = $dbtable->fetchAll('tipo = "MOTIVO_LIGACAO" AND COALESCE(parent_id, 0) = 0', 'descricao'); return array_filter(self::getOptions($rs, 'id', 'descricao')); } public static function getStatusAtendimentoCorretorOptions() { return array( '' => '', 'EM ATENDIMENTO' => 'EM ATENDIMENTO', 'REALIZADO' => 'REALIZADO', ); } public static function getStatusResolucaoOptions() { $model = new Model_StatusResolucao(); $rs = $model->listar('COALESCE(parent_id, 0) = 0', 'descricao'); return array_filter(self::getOptions($rs, 'id', 'descricao')); } public static function getUsuariosCallcenterOptions() { $model = new Model_Usuario(); $fields = array( 'gu.nome' => 'Callcenter' ); $values = $model->listar($fields, array( 'nome', 'login' )); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { $options[$value['id']] = $value['login'] ? $value['login'] : $value['nome']; } } return $options; } public static function getUsuariosUltimoAtendimentoOptions() { $model = new Model_Usuario(); $values = $model->ultimoAtendimentoCallcenter(); $options = array( '' => '' ); if( count($values) > 0 ){ foreach ( $values as $value ) { $options[$value['id']] = $value['nome']; } } return $options; } public static function getTipoRemuneracaoEmpresaOptions() { return array( '' => '', '1' => 'À vista', '3' => 'Adiantamento', '2' => 'Diferimento', '4' => 'Bônus' ); } public static function getNaturezasOptions() { return array( '' => '', '2' => 'Remuneração Adicional', '1' => 'Comissão', ); } public static function getGruposDocumentosOptions() { $model = new Model_GrupoDocumento(); $gruposDocumento = $model->listar(null, 'descricao ASC'); return self::getOptions($gruposDocumento, 'id', 'descricao'); } public static function getConsultasCallcenterOptions() { $config = new Zend_Config_Ini(CLIENT_PATH . "/configs/application.ini"); $convertToArray = $config->toArray(); $dadosConfig = array_filter($convertToArray['production']); $dados = array(); $consultas = array( 'InTouch', 'MultiBr', 'Fucador', 'Viper', 'AnaliseInfo' ); foreach ( $dadosConfig as $key => $con ) { foreach ( $consultas as $c ) { if( stripos(strtolower($key), strtolower($c)) !== false ){ if( array_filter($con) ){ $dados[$c] = $c; } } } } return $dados; } public static function getTipoContratoAnexoOptions() { $dbTipos = new Model_DbTable_Tipos(); return $dbTipos->fetchPairs( 'descricao', "tipo = 'ANEXO_CONTRATO' AND descricao <> 'Outros documentos'", "descricao"); } public static function getStatusFraudeOptions() { return array( '' => '', '1' => 'Aguardando', '2' => 'Aprovado', '3' => 'Recusado' ); } public static function getSituacaoRetencaoOptions() { return [ '' => '', '0' => 'A reter', '1' => 'Sinalizado', '2' => 'Retido', '3' => 'Portado' ]; } public static function getTabelasFatoresOptions($convenioId, $bancoId) { $hoje = date('d', time()); $dbFatores = new Model_DbTable_TabelaFator(); $select = $dbFatores->select()->from($dbFatores, array('tabela_id')) ->where("convenio_id = {$convenioId}") ->where("banco_id = {$bancoId}") ->where("dia = $hoje OR dia = '' OR dia IS NULL") ->where('excluido<>1'); $db = new Model_DbTable_Tabela(); $values = $db->fetchAll("id IN({$select})", 'nome ASC'); return self::getOptions($values); } public static function getCallcenterModelosAtendimentoOptions() { $dbtable = new Model_DbTable_CallcenterModeloAtendimento(); return $dbtable->fetchPairs( 'descricao'); } public static function getBancosCallcenterOptions() { $dbtable = new Model_DbTable_CallcenterEmprestimoCliente(); return self::getOptions($dbtable->getBancos(), 'banco', 'banco'); } public static function getCallcenterStatusTelefoneOptions() { return [ '' => '', 'indisponivel' => 'Número de destino está indisponível ou não atendeu a chamada', 'ENVIADO' => 'Enviado para discador', 'campanha' => 'Inserido na campanha e será trabalhado', 'andamento' => 'Chamada esta em andamento na discadora', 'ramal atendeu' => 'PA/Ramal atendeu a chamada direcionada', 'ramal falhou' => 'PA/Ramal não atendeu a chamada direcionada', 'discando' => 'Chamada já foi atendida pela PA/Ramal e foi para discagem ao número de destino', 'falando' => 'PA/Ramal e número de destino estão em conversação', 'ocupado' => 'Número de destino está ocupado', 'desligada' => 'Chamada foi desligada após ter sido bem-sucedida (falada)', ]; } public static function getMensagensOptions($fields = null) { $model = new Model_CallcenterMensagem(); $mensagens = $model->listar($fields); return self::getOptions($mensagens, 'id', 'assunto'); } public static function getCallcenterStatusAgendamentoOptions() { return Model_CallcenterStatusAtendimento::getStatusParaAgendamento(); } public static function getTiposProdutosPropostasOptions() { $tipos = Core_Combos::getTiposProdutosOptions(); $tipos['REDUCAO DE PARCELA'] = "REDUCAO DE PARCELA"; $tipos['COMPLEMENTO DA REDUCAO'] = "COMPLEMENTO DA REDUCAO"; unset($tipos['PLASTICO']); unset($tipos['ATIVACAO']); return $tipos; } public static function getCallcenterMotivosPausa() { $model = new Model_DbTable_CallcenterMotivoPausa(); $pausasProgramadas = $model->fetchAll(['logout_discador = ?' => true]); return self::getOptions($pausasProgramadas, 'id', 'descricao'); } public static function getSituacaoDigitacaoProposta() { return [ '1' => 'Digitado', '0' => 'Não digitado', '-1' => 'Com pendências', '2' => 'Recepcionar na loja', '3' => 'Pegar no cliente', '4' => 'Recusado na esteira anti-fraude', '5' => 'Whatsapp', '6' => 'E-mail', '7' => 'Aguardando aprovação corretor', '8' => 'Reprovado na digitação' ]; } /** * @return string[] */ public static function getTipoCallcenterBaseLegal() { $table = new Model_DbTable_Tipos(); $tipos = $table->fetchAll(["tipo = 'CALLCENTER_BASE_LEGAL'"], 'descricao'); return self::getOptions($tipos, 'id', 'descricao'); } public static function getEspeciesConsignaveisOptions() { $table = new Model_DbTable_Tipos(); $tipos = $table->fetchAll(["tipo = 'ESPECIE_CONSIGNAVEL'"], 'CAST(codigo AS unsigned)'); return self::getOptions($tipos, 'codigo', ['codigo', 'descricao'], true); } /** * @return array|string[] */ public static function getAutoOportunidadesNegocios(): array { return self::getOptions(OportunidadesNegocioTable::findOptions(), 'id', 'descricao'); } public static function getStatusFgts() { return self::getOptions((new Model_DbTable_CallcenterFgts())->fetchStatus(), 'descricao_erro', 'descricao_erro'); } public static function getBancosAutocontratacaoOptions() { $dbtable = new Model_DbTable_BancoFebraban(); $where = "exibir_autocontratacao = 1"; return self::getOptions($dbtable->fetchAll($where, 'nome ASC'), 'codigo', ['nome', 'codigo']); } public static function getOrgaoEmissorOptions() { $where = "tipo = 'ORGAO_EMISSOR'"; $dbtable = new Model_DbTable_Tipos(); $values = $dbtable->fetchColumns("codigo", array("codigo", "descricao"), $where, "descricao"); return array_filter(self::getOptions($values, 'codigo', 'descricao')); } }
💾 保存文件
← 返回文件管理器