Exemplo n.º 1
0
 /**
  * Obtém pessoa artefato assinatura
  * @param  $dto
  * @return array
  */
 public function getPessoaArtefatoAssinatura($dto)
 {
     $query = $this->_em->createQueryBuilder()->select('p.noPessoa, p.noProfissao, p.noUnidadeOrg, tm.noTipoMotivacao, tm.sqTipoMotivacao,
                             m.deMotivacao')->from('app:Motivacao', 'm')->innerJoin('m.sqTipoMotivacao', 'tm')->innerJoin('m.sqPessoa', 'p')->innerJoin('p.sqPessoaFuncao', 'pf')->leftJoin('p.sqTratamentoVocativo', 'tv')->leftJoin('tv.sqTratamento', 't')->leftJoin('tv.sqVocativo', 'v')->leftJoin('p.sqPessoaCorporativo', 'pc')->leftJoin('p.sqMunicipioEndereco', 'cid')->leftJoin('cid.sqEstado', 'est')->andWhere('p.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato())->andWhere('p.sqPessoaFuncao = :sqPessoaFuncao')->setParameter('sqPessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoAssinatura())->getQuery()->execute();
     if (empty($query)) {
         return NULL;
     }
     return $query;
 }
 /**
  * Metódo que recupera o Dto da Assinatura
  */
 public function getDtoAssinatura($data)
 {
     $data['sqPessoaCorporativo'] = $data['sqResponsavel'];
     $data['sqTipoPessoa'] = \Core_Configuration::getSgdoceTipoPessoaPessoaFisica();
     $data['sqPessoaFuncao'] = \Core_Configuration::getSgdocePessoaFuncaoAssinatura();
     $data['sqPessoa'] = $data['sqPessoaAssinante'];
     $data['noPessoa'] = $data['sqResponsavel_autocomplete'];
     $dtoAssinatura['PessoaSgdoce'] = \Core_Dto::factoryFromData($data, 'entity', array('entity' => 'Sgdoce\\Model\\Entity\\PessoaSgdoce', 'mapping' => array('sqTipoPessoa' => 'Sgdoce\\Model\\Entity\\VWTipoPessoa', 'sqPessoaCorporativo' => array('sqPessoa' => 'Sgdoce\\Model\\Entity\\VwPessoa'))));
     $dtoAssinatura['PessoaAssinante'] = \Core_Dto::factoryFromData($data, 'entity', array('entity' => 'Sgdoce\\Model\\Entity\\PessoaAssinanteArtefato', 'mapping' => array('sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato', 'sqPessoaSgdoce' => 'Sgdoce\\Model\\Entity\\PessoaSgdoce', 'sqTipoAssinante' => 'Sgdoce\\Model\\Entity\\TipoAssinante')));
     return $dtoAssinatura;
 }
 /**
  * método que obtén informarções da pessoa 'assinatura' relacionada ao artefato
  * @param integer
  * @return array
  */
 public function getPessoaArtefatoAssinatura($dto)
 {
     $query = $this->_em->createQueryBuilder()->select('p.noPessoa, p.noProfissao, p.noUnidadeOrg')->from($this->_enName, 'p')->innerJoin('p.sqPessoaFuncao', 'pf')->andWhere('p.sqArtefato = :sqArtefato')->setParameter('sqArtefato', $dto->getSqArtefato())->andWhere('p.sqPessoaFuncao = :sqPessoaFuncao')->setParameter('sqPessoaFuncao', \Core_Configuration::getSgdocePessoaFuncaoAssinatura())->getQuery()->execute();
     if (empty($query)) {
         return NULL;
     }
     return $query;
 }
Exemplo n.º 4
0
 /**
  * @return void
  */
 protected function editActionExtension()
 {
     $params = $this->_getAllParams();
     $dtoCheckEdit = Core_Dto::factoryFromData(array('sqArtefato' => $params['id'], 'sqPessoa' => \Core_Integration_Sica_User::getPersonId()), 'search');
     //verifica se o artefato pode ser editado
     //        if (!$this->getService('AreaTrabalho')->canEditArtefact($dtoCheckEdit)) {
     //            $this->getMessaging()->addErrorMessage(
     //                    sprintf(\Core_Registry::getMessage()->translate('MN154'),
     //                            $this->view->data->getNuDigital()->getNuEtiqueta()));
     //            $this->_redirect('/artefato/area-trabalho');
     //        }
     $params['sqArtefato'] = $params['id'];
     $dtoSearch = Core_Dto::factoryFromData($params, 'search');
     $this->view->redirect = $params['view'];
     $this->view->user = $this->getUser();
     $this->getCombo();
     $this->view->isLoteEletronico = false;
     $this->view->eDigital = $this->view->data->getNuDigital();
     if ($this->view->data->getSqTipoDocumento()) {
         $this->view->isSIC = $this->view->data->getSqTipoDocumento()->getSqTipoDocumento() == \Core_Configuration::getSgdoceTipoDocumentoSic();
     } else {
         $this->view->isSIC = false;
     }
     $this->view->docSIC = $this->view->data->getSqTipoDocumento();
     $dtoSgdoceFisico = \Core_Dto::factoryFromData(array('nuDigital' => $this->view->data->getNuDigital()->getNuEtiqueta(), 'sqArtefato' => $this->view->data->getSqArtefato()), 'search');
     $this->view->dataSgdocFisico = $this->getService()->getDataSgdocFisico($dtoSgdoceFisico);
     $this->view->dataSgdocFisico = current($this->view->dataSgdocFisico);
     $this->view->listProcedenciaFisico = array('I' => 'Interno', 'E' => 'Externo');
     $this->view->nuInteressados = $this->getService('PessoaInterassadaArtefato')->countInteressadosArtefatoValido($dtoSgdoceFisico);
     $dto = Core_Dto::factoryFromData(array('sqPessoaCorporativo' => \Core_Configuration::getSgdoceUnidadeCgu(), 'sqTipoPessoa' => \Core_Configuration::getCorpTipoPessoaUnidadeExt()), 'search');
     $this->view->CGU = !$this->view->isSIC ? null : $this->getService('Pessoa')->getPessoa($dto);
     // retorno de valor para a view
     $this->view->tipoNavegacao = $dtoSearch->getA();
     $this->view->dataGrauAcesso = $this->getService('GrauAcessoArtefato')->getGrauAcessoArtefato($dtoSearch);
     $criteria = array('sqArtefato' => $params['sqArtefato'], 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoAssinatura());
     $this->view->assinanteArtefatoExterno = $this->getService('PessoaArtefato')->findOneBy($criteria);
     $this->view->assinanteArtefatoInterno = $this->getService('PessoaAssinanteArtefato')->getAssinanteArtefato($dtoSearch);
     $this->view->dadosOrigem = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoOrigem());
     $this->view->dadosDestino = self::_dadosPessoaDocumento($dtoSearch, \Core_Configuration::getSgdocePessoaFuncaoDestinatario());
     $this->view->result = $this->getService('AnexoArtefato')->listGridAnexos($dtoSearch);
     if ($this->view->dadosDestino) {
         $sqTipoPessoa = $this->view->dadosDestino[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa();
         if ($sqTipoPessoa == \Core_Configuration::getCorpTipoPessoaFisica()) {
             $this->view->nacionalidadeDestino = $this->returnNacionalidade($this->view->dadosDestino);
         }
     }
     if ($this->view->dadosOrigem) {
         $sqTipoPessoa = $this->view->dadosOrigem[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa();
         if ($sqTipoPessoa == \Core_Configuration::getCorpTipoPessoaFisica()) {
             $this->view->nacionalidadeOrigem = $this->returnNacionalidade($this->view->dadosOrigem);
         }
     }
     if ($this->view->data->getSqTipoArtefatoAssunto()->getSqTipoArtefatoAssunto()) {
         $this->_messageEdit = 'MN043';
         #mensagem de alteracao
     }
     if (!$this->view->isSIC) {
         $procedenciaInterno = isset($this->view->dadosOrigem[1]) ? $this->view->dadosOrigem[1] : NULL;
         //1 = interno  -- 3 = externo
         if ($procedenciaInterno == 1) {
             $disabledProcedencia = 'chekProcedenciaExterno';
         } else {
             $disabledProcedencia = 'chekProcedenciaInterno';
         }
         $this->view->disabledProcedencia = $disabledProcedencia;
     }
 }
Exemplo n.º 5
0
 private function _checkExcluirAssinante($entity, $dto)
 {
     if ($entity->getSqArtefato() && !$dto->getNoResponsavelAssinatura() && ($dto->getProcedenciaInterno() == 'externo' || in_array($dto->getSqTipoDocumento(), $this->getTipoDocumentoSemAssinatura()))) {
         //só insere em pessoa_assinante_artefato se procedencia for interna
         if ($dto->getProcedenciaInterno() != 'externo') {
             $criteria = array('sqArtefato' => $entity->getSqArtefato());
             $entPessoaAssinante = $this->_getRepository('app:PessoaAssinanteArtefato')->findOneBy($criteria);
             if ($entPessoaAssinante) {
                 $this->_getRepository('app:PessoaAssinanteArtefato')->deleteByArtefato($entity->getSqArtefato());
             }
         }
         $criteriaPessoaArtefatoAssinante = array('sqArtefato' => $entity->getSqArtefato(), 'sqPessoaFuncao' => \Core_Configuration::getSgdocePessoaFuncaoAssinatura());
         $entPessoaArtefatoAssinante = $this->_getRepository('app:PessoaArtefato')->findOneBy($criteriaPessoaArtefatoAssinante);
         if ($entPessoaArtefatoAssinante) {
             $this->getEntityManager()->remove($entPessoaArtefatoAssinante);
         }
     }
     return $this;
 }
Exemplo n.º 6
0
 /**
  * Retorna subquery que verifica se a pessoa que esta logada está na assinatura da minuta ou não
  * @param integer $sqUsuario
  * @return \Doctrine\ORM\QueryBuilder
  */
 public function subQueryAssinaturaArtefato($sqUsuario)
 {
     $subQueryInAss = $this->_em->createQueryBuilder()->select('svwps.sqPessoa')->from('app:Pessoa', 'sps')->leftJoin('sps.sqPessoaCorporativo', 'svwps')->innerJoin('sps.sqPessoaFuncao', 'svwpf')->andWhere('sps.sqArtefato = vcm.sqArtefato')->andWhere('svwps.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $sqUsuario)->andWhere('sps.sqPessoaFuncao = ' . \Core_Configuration::getSgdocePessoaFuncaoAssinatura())->getQuery()->getDQL();
     return $subQueryInAss;
 }
Exemplo n.º 7
0
 /**
  * @return
  */
 public function listPesquisaDocumento($dto)
 {
     $listCondition = array('getNuArtefato' => array("ilike" => array("AND" => 'art.nu_artefato')), 'getSqAssunto' => array("=" => array("AND" => 'ass.sq_assunto')), 'getTxAssuntoComplementar' => array("ilike" => array("AND" => 'art.tx_assunto_complementar')), 'getInteressado' => array("ilike" => array("OR" => array("trim(pse.no_pessoa)", "trim(vue.sg_unidade_org || ' - ' || pse.no_pessoa)"), 'tlp' => array('trim(%s)', 'trim(%s)'))), 'getOrigem' => array("ilike" => array("OR" => array("trim(pfo.no_pessoa)", "trim(vuo.sg_unidade_org || ' - ' || pfo.no_pessoa)"), 'tlp' => array('trim(%s)', 'trim(%s)'))), 'getNuDigital' => array("ilike" => array("AND" => 'formata_numero_digital(art.nu_digital)')), 'getDestino' => array("ilike" => array("OR" => array("trim(pfd.no_pessoa)", "trim(vud.sg_unidade_org || ' - ' || pfd.no_pessoa)"), 'tlp' => array('trim(%s)', 'trim(%s)'))), 'getAssinatura' => array("ilike" => array("OR" => array("trim(pfa.no_pessoa)", "trim(vua.sg_unidade_org || ' - ' || pfa.no_pessoa)"), 'tlp' => array('trim(%s)', 'trim(%s)'))), 'getNoTipoDocumento' => array("ilike" => array("AND" => 'tad.no_tipo_documento')));
     // criteria
     $listPeriodo = array('dtCadastro' => 'art.dt_cadastro', 'dtAutuacao' => 'art.dt_artefato', 'dtPrazo' => 'art.dt_prazo');
     $sqPeriodo = $dto->getSqPeriodo();
     $periodoColumn = null;
     if (isset($listPeriodo[$sqPeriodo])) {
         $periodoColumn = $listPeriodo[$sqPeriodo];
     }
     $where = $this->getCriteriaText($listCondition, $dto, $periodoColumn);
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('total_record', 'totalRecord', 'integer');
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('nu_digital', 'nuDigital', 'string');
     $rsm->addScalarResult('tx_assunto', 'txAssunto', 'string');
     $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string');
     $rsm->addScalarResult('no_tipo_documento', 'noTipoDocumento', 'string');
     $rsm->addScalarResult('origem', 'noPessoaOrigem', 'string');
     $rsm->addScalarResult('dt_artefato', 'dtArtefato', 'string');
     $rsm->addScalarResult('interessados', 'noPessoaInteressados', 'string');
     $rsm->addScalarResult('tx_movimentacao', 'txMovimentacao', 'string');
     $sql = "SELECT  COUNT(art.sq_artefato) OVER() AS total_record,\n                         art.sq_artefato,\n                         formata_numero_digital(art.nu_digital) AS nu_digital,\n                         ass.tx_assunto,\n                         art.nu_artefato,\n                         tad.no_tipo_documento,\n                         pfo.no_pessoa as origem,\n                         art.dt_artefato,\n                         string_agg(pse.no_pessoa, ', ') AS interessados,\n                         pfd.no_pessoa as destino,\n                         pfa.no_pessoa as assinatura,\n                         sgdoce.ultima_movimentacao_artefato(art.sq_artefato) as tx_movimentacao\n                    FROM sgdoce.artefato art\n                    JOIN sgdoce.tipo_artefato_assunto taa ON art.sq_tipo_artefato_assunto = taa.sq_tipo_artefato_assunto\n                    JOIN sgdoce.assunto ass ON taa.sq_assunto = ass.sq_assunto\n                    JOIN sgdoce.tipo_documento tad ON art.sq_tipo_documento = tad.sq_tipo_documento\n                    JOIN sgdoce.pessoa_artefato pao ON art.sq_artefato = pao.sq_artefato AND pao.sq_pessoa_funcao  = " . \Core_Configuration::getSgdocePessoaFuncaoOrigem() . "\n                    JOIN sgdoce.pessoa_sgdoce pfo ON pao.sq_pessoa_sgdoce = pfo.sq_pessoa_sgdoce\n               LEFT JOIN corporativo.vw_unidade_org vuo ON pfo.sq_pessoa_corporativo = vuo.sq_pessoa\n               LEFT JOIN sgdoce.pessoa_interessada_artefato pai ON art.sq_artefato = pai.sq_artefato\n               LEFT JOIN sgdoce.pessoa_sgdoce pse ON pai.sq_pessoa_sgdoce = pse.sq_pessoa_sgdoce\n               LEFT JOIN corporativo.vw_unidade_org vue ON pse.sq_pessoa_corporativo = vue.sq_pessoa\n               LEFT JOIN sgdoce.pessoa_artefato pad ON art.sq_artefato = pad.sq_artefato AND pad.sq_pessoa_funcao = " . \Core_Configuration::getSgdocePessoaFuncaoDestinatario() . "\n               LEFT JOIN sgdoce.pessoa_sgdoce pfd ON pad.sq_pessoa_sgdoce = pfd.sq_pessoa_sgdoce\n               LEFT JOIN corporativo.vw_unidade_org vud ON pfd.sq_pessoa_corporativo = vud.sq_pessoa\n               LEFT JOIN sgdoce.pessoa_artefato paa ON art.sq_artefato = paa.sq_artefato AND paa.sq_pessoa_funcao = " . \Core_Configuration::getSgdocePessoaFuncaoAssinatura() . "\n               LEFT JOIN sgdoce.pessoa_sgdoce pfa ON paa.sq_pessoa_sgdoce = pfa.sq_pessoa_sgdoce\n               LEFT JOIN corporativo.vw_unidade_org vua ON pfa.sq_pessoa_corporativo = vua.sq_pessoa\n                    %s\n                GROUP BY art.sq_artefato,\n                         art.nu_digital,\n                         ass.tx_assunto,\n                         art.nu_artefato,\n                         tad.no_tipo_documento,\n                         pfo.no_pessoa,\n                         art.dt_artefato,\n                         pfd.no_pessoa,\n                         pfa.no_pessoa,\n                         tx_movimentacao";
     if ($where != "") {
         $where = "WHERE " . $where;
     } else {
         $where = "WHERE 1 <> 1";
     }
     $where .= " AND taa.sq_tipo_artefato = " . \Core_Configuration::getSgdoceTipoArtefatoDocumento();
     $sql = sprintf($sql, $where);
     return $this->_em->createNativeQuery($sql, $rsm);
 }