/** * Consulta de processos. * * @return QueryBuilder */ public function listGridProcesso($dto) { $listCondition = array('getInteressado' => array("ilike" => array("OR" => array("trim(pse.no_pessoa)", "trim(vue.sg_unidade_org || ' - ' || pse.no_pessoa)"), 'tlp' => array('trim(%s)', 'trim(%s)'))), 'getNuArtefato' => array("regex" => array("AND" => array('art.nu_artefato'), 'tlp' => array('%s'))), 'getSqAssunto' => array("=" => array("AND" => 'ass.sq_assunto')), 'getTxAssuntoComplementar' => array("ilike" => array("AND" => 'art.tx_assunto_complementar')), 'getOrigem' => array("ilike" => array('OR' => array('trim(pfo.no_pessoa)', "trim(pfo.no_pessoa)"), 'tlp' => array('trim(%s)', 'trim(%s)'))), 'getNuDigital' => array("ilike" => array("AND" => 'cast(ard.nu_digital as text)'))); $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->getEntityManager()->getRepository('app:Artefato')->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_artefato', 'nuArtefato', 'string'); $rsm->addScalarResult('tx_assunto', 'txAssunto', 'string'); $rsm->addScalarResult('origem', 'noPessoaOrigem', 'string'); $rsm->addScalarResult('interessados', 'noPessoaInteressados', 'string'); $rsm->addScalarResult('tx_movimentacao', 'txMovimentacao', 'string'); $sql = "SELECT\n COUNT(art.sq_artefato) OVER() AS total_record,\n art.sq_artefato,\n formata_numero_artefato(art.nu_artefato, atp.co_ambito_processo) AS nu_artefato,\n ass.sq_assunto,\n ass.tx_assunto,\n art.tx_assunto_complementar,\n string_agg(pse.no_pessoa, ', ') as interessados,\n pfo.sq_pessoa_corporativo as origem_id,\n pfo.no_pessoa as origem,\n art.dt_artefato,\n art.dt_prazo,\n art.dt_cadastro,\n ard.nu_digital,\n sgdoce.ultima_movimentacao_artefato(art.sq_artefato) as tx_movimentacao,\n vuo.sg_unidade_org\n FROM sgdoce.artefato art\n JOIN sgdoce.artefato_processo atp\n ON art.sq_artefato = atp.sq_artefato\n JOIN sgdoce.tipo_artefato_assunto taa\n ON art.sq_tipo_artefato_assunto = taa.sq_tipo_artefato_assunto\n JOIN sgdoce.assunto ass\n ON taa.sq_assunto = ass.sq_assunto\n JOIN sgdoce.pessoa_artefato pao\n ON art.sq_artefato = pao.sq_artefato AND pao.sq_pessoa_funcao = " . \Core_Configuration::getSgdocePessoaFuncaoOrigem() . "\n JOIN sgdoce.pessoa_sgdoce pfo\n ON pao.sq_pessoa_sgdoce = pfo.sq_pessoa_sgdoce\n LEFT JOIN corporativo.vw_unidade_org vuo\n ON pfo.sq_pessoa_corporativo = vuo.sq_pessoa\n LEFT JOIN sgdoce.pessoa_interessada_artefato pai\n ON art.sq_artefato = pai.sq_artefato\n LEFT JOIN sgdoce.pessoa_sgdoce pse\n ON pai.sq_pessoa_sgdoce = pse.sq_pessoa_sgdoce\n LEFT JOIN corporativo.vw_unidade_org vue\n ON pse.sq_pessoa_corporativo = vue.sq_pessoa\n LEFT JOIN sgdoce.artefato_vinculo arv\n ON art.sq_artefato = arv.sq_artefato_pai AND arv.sq_tipo_vinculo_artefato = " . \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao() . "\n LEFT JOIN sgdoce.artefato ard\n ON ard.sq_artefato = arv.sq_artefato_filho\n %s\n GROUP BY art.sq_artefato,\n art.nu_artefato,\n atp.co_ambito_processo,\n ass.sq_assunto,\n ass.tx_assunto,\n art.tx_assunto_complementar,\n pfo.sq_pessoa_corporativo,\n pfo.no_pessoa,\n art.dt_artefato,\n art.dt_prazo,\n art.dt_cadastro,\n ard.nu_digital,\n tx_movimentacao,\n vuo.sg_unidade_org"; if ($where != "") { $where = "WHERE " . $where; } else { $where = "WHERE 1 <> 1"; } $sql = sprintf($sql, $where); return $this->_em->createNativeQuery($sql, $rsm); }
public function canEditArtefact(\Core_Dto_Search $dto, $isProcesso = FALSE) { $repoUTA = $this->_getRepository('app:VwUltimoTramiteArtefato'); $isChild = $this->_getRepository('app:ArtefatoVinculo')->isChild($dto); $isAllowedAlter = in_array(\Core_Integration_Sica_User::getUserProfile(), $this->getUsersAllowedAlterArtefact()); $listTipoAssuntoSolicitacao = array(\Core_Configuration::getSgdoceTipoAssuntoSolicitacaoAlterarCadastro()); $dtoSolicitacao = \Core_Dto::factoryFromData(array('sqArtefato' => $dto->getSqArtefato()), 'search'); $hasDemandaAlteracaoDados = $this->getServiceLocator()->getService('Solicitacao')->hasDemandaAbertaByAssuntoPessoaResponsavel($dtoSolicitacao, $listTipoAssuntoSolicitacao); // Se processo, verifica se existe vinculo além do tipo de autuação $hasProcessoVinculo = false; if ($isProcesso) { $rsVinculosProcesso = $this->_getRepository('app:ArtefatoVinculo')->findByNot(array('sqArtefatoPai' => $dto->getSqArtefato()), array('sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao())); $hasProcessoVinculo = count($rsVinculosProcesso); } //se $areaTrabalho, logo, esta na area da pessoa logada //caso contrario retorna NULL $areaTrabalho = $this->_getRepository()->findArtefato($dto); //SGI pode alterar o documento se houver demanda de suporte do tipo alterar dados ou alterar grau ou se estiver na minha da area de trabalho dele. if ($isAllowedAlter && $hasDemandaAlteracaoDados || $isAllowedAlter && $areaTrabalho) { return TRUE; } if ($areaTrabalho && $repoUTA->isFirstTramite($dto) && (!$areaTrabalho->getHasVinculo() || !$hasProcessoVinculo) && !$areaTrabalho->getArquivado() && !$areaTrabalho->getHasSolicitacaoAberta() && !$isChild) { return TRUE; } return FALSE; }
/** * Método padrão */ public function indexAction() { $this->_helper->layout->setLayout('modal'); $data['sqArtefato'] = $this->_getParam("sqArtefato"); $dtoArtefato = Core_Dto::factoryFromData($data, 'search'); $this->view->entityArtefato = $this->getService()->find($data['sqArtefato']); $artefatoInconsistente = $this->getService()->isInconsistent($this->view->entityArtefato, FALSE, TRUE); if ($artefatoInconsistente) { $noTipoArtefato = mb_strtolower($this->view->entityArtefato->getSqTipoArtefatoAssunto()->getSqTipoArtefato()->getNoTipoArtefato(), 'utf-8'); $this->getMessaging()->addAlertMessage("Os dados deste {$noTipoArtefato} estão inconsistentes. A correção deve ser feita pelo usuário que estiver com o {$noTipoArtefato} em sua Área de Trabalho.", 'User'); $this->getMessaging()->dispatchPackets(); } $sqTipoArtefato = $this->view->entityArtefato->getSqTipoArtefatoAssunto()->getSqTipoArtefato()->getSqTipoArtefato(); //monta a arvore de vinculos $this->view->vinculos = $this->getService('ArtefatoVinculo')->mostarArvore((int) $data['sqArtefato']); $this->view->urlBack = str_replace(".", "/", $this->getRequest()->getParam('back', "")); $this->view->dadosOrigem = $this->returnDadosOrigem($dtoArtefato); $this->view->dadosDestino = $this->returnDadosDestino($dtoArtefato); if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $criteria = array('sqArtefatoPai' => $dtoArtefato->getSqArtefato(), 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao()); $this->view->autuacao = $this->getService('ArtefatoVinculo')->findBy($criteria); $this->view->dadosInteressado = $this->getService('PessoaInterassadaArtefato')->getPessoaInteressadaArtefato($dtoArtefato); } $this->view->nacionalidadeDestino = NULL; if ($this->view->dadosDestino) { $sqTipoPessoa = $this->view->dadosDestino[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa(); if ($sqTipoPessoa == \Core_Configuration::getSgdoceTipoPessoaPessoaFisica()) { $this->view->nacionalidadeDestino = $this->returnNacionalidade($this->view->dadosDestino); } } $this->view->nacionalidadeOrigem = NULL; if ($this->view->dadosOrigem) { $sqTipoPessoa = $this->view->dadosOrigem[0]->getSqPessoaSgdoce()->getSqTipoPessoa()->getSqTipoPessoa(); if ($sqTipoPessoa == \Core_Configuration::getSgdoceTipoPessoaPessoaFisica()) { $this->view->nacionalidadeOrigem = $this->returnNacionalidade($this->view->dadosOrigem); } } if ($this->view->urlBack == "") { $this->view->urlBack = "javascript:window.close();"; } // REGISTRO DE VISUALIZAÇÃO DE ARTEFATO. #HistoricoArtefato::save(); // $strMessage = sprintf($this->getServiceLocator() // ->getService('HistoricoArtefato') // ->getMessage('MH003'), Core_Integration_Sica_User::getUserName()); // // $this->_salvarHistoricoArtefato($dtoArtefato->getSqArtefato(), // \Core_Configuration::getSgdoceSqOcorrenciaVisualizar(), // $strMessage); }
/** * Ação para visualização de imagem de documentos migrados */ public function viewMigrationAction() { $this->getHelper('layout')->setLayout('modal'); $sqArtefato = $this->getRequest()->getParam('id'); // Regras para artefatos de migração. $dtoSearchPai = \Core_Dto::factoryFromData(array('sqArtefato' => $sqArtefato), 'search'); $params = $this->_viewSteps(); $entArtefato = $this->getService("Artefato")->find($params['id']); if ($entArtefato->isProcesso() && $this->getService("Artefato")->isMigracao($dtoSearchPai) && $this->getService("Artefato")->isInconsistent($dtoSearchPai)) { $firstItem = current($this->view->treeviewData); $primeiraPeca = current($firstItem['filhos']); $dtoSearch = \Core_Dto::factoryFromData(array('sqArtefato' => $primeiraPeca['sqArtefatoFilho']), 'search'); $hasImagem = $this->getService()->hasArtefatoImagemAtiva($dtoSearch); if (!$hasImagem) { $this->view->entArtefato = $entArtefato; //recupera a 1ª Peça $entPrimeiraPeca = $this->getService('ArtefatoVinculo')->findOneBy(array('sqArtefatoPai' => $entArtefato->getSqArtefato(), 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao())); //se não tem 1ª Peça não faz nada if (!$entPrimeiraPeca) { $this->render('fail-image-not-first-piece'); } else { $listSolicitacao = $this->getService()->getSolicitacaoMigracaoImagem($dtoSearch); if ($listSolicitacao) { $configs = \Core_Registry::get('configs'); $qtdeTentativa = $configs['migration']['qtdeTentativa']; $entSolicitacao = current($listSolicitacao); if (!$entSolicitacao->getStProcessado() && $entSolicitacao->getInTentativa() == $qtdeTentativa) { $this->render('fail-image-not-process'); } else { $this->render('fail-image-processo'); } } else { $this->render('fail-image-processo'); } } } } $this->view->canOverwrite = false; if (count($this->view->treeviewData) > 0 && !$this->view->hasImage) { $firstItem = current($this->view->treeviewData); $this->view->hasImage = count($firstItem['filhos']) > 0; } if (!$this->view->treeviewData) { $this->view->hasDuplicity = true; } $this->getService('VinculoMigracao')->verificaImagemArvore($this->view->treeviewData); // Verifica se item é de migração e se tem imagem, se não tiver, adicionar uma solicitação de migração de imagem if (isset($params['view']) && $params['view'] == 'migracao') { if ($this->getService("Artefato")->isInconsistent($dtoSearchPai, true)) { $this->view->canOverwrite = true; } $this->view->id = $params['id']; $this->render('view-migracao'); } else { $this->render('view'); } $isAllowedAlter = in_array(\Core_Integration_Sica_User::getUserProfile(), $this->getService()->getUsersAllowedAlterImage()); $inMyDashboard = $this->getService("Artefato")->inMyDashboard($dtoSearchPai->getSqArtefato()); $this->view->canAlterImage = $isAllowedAlter && $inMyDashboard; $this->view->sqTipoArtefato = $entArtefato->getSqTipoArtefatoAssunto()->getSqTipoArtefato()->getSqTipoArtefato(); }
/** * método que retorna dados para grid * @param \Core_Dto_Abstract $dto * @return \Doctrine\ORM\QueryBuilder */ public function listGridVinculacaoPeca(\Core_Dto_Search $dto) { $queryBuilder = $this->_em->createQueryBuilder()->select('af.nuArtefato', 'af.nuDigital', 'av.inOriginal', 'av.sqArtefatoVinculo')->from('app:ArtefatoVinculo', 'av')->leftJoin('av.sqArtefatoPai', 'ap')->leftJoin('av.sqArtefatoFilho', 'af')->leftJoin('av.sqTipoVinculoArtefato', 'tva')->andWhere('av.sqTipoVinculoArtefato in(:insercao)')->setParameters(array('insercao' => array(\Core_Configuration::getSgdoceTipoVinculoArtefatoInsercao(), \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao())))->andWhere('av.dtRemocaoVinculo IS NULL')->andWhere('av.sqArtefatoPai = :id')->setParameter('id', $dto->getSqArtefato()); return $queryBuilder; }
/** * @param \Core_Dto $dto * @return multitype: */ public function findSqArtefatoPai($dto) { $criteria = array('sqArtefatoPai' => $dto->getSqArtefato(), 'dtRemocaoVinculo' => NULL, 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao()); return $this->_getRepository('app:ArtefatoVinculo')->findBy($criteria); }
/** * @param integer $sqArtefato * @return boolean */ public function hasImage($sqArtefato, $sqTipoArtefato = null) { try { if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $entityArtefato = $this->_getRepository($this->_entityArtefato)->find($sqArtefato); $sqTipoArtefato = $entityArtefato->getSqTipoArtefatoAssunto()->getSqTipoArtefato()->getSqTipoArtefato(); /** * se for processo recupera a 1ª peça para verificar se tem imagem */ if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $entityArtefatoVinculoPrimeiraPeca = $this->_getRepository($this->_entityArtefatoVinculo)->findOneBy(array('sqArtefatoPai' => $sqArtefato, 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao())); /** * Não existe vinculo de primeira peça para o processo */ if (null === $entityArtefatoVinculoPrimeiraPeca) { return false; } //pega o sqArtefato do pai $sqArtefato = $entityArtefatoVinculoPrimeiraPeca->getSqArtefatoFilho()->getSqArtefato(); } } $filePath = $this->getImagePath($sqArtefato); if (empty($filePath)) { return false; } $file = sprintf('%1$s%2$s..%2$sdata%2$s%3$s', APPLICATION_PATH, DIRECTORY_SEPARATOR, $filePath); if (!file_exists($file)) { throw new \Core_Exception_ServiceLayer('Imagem cadastrada, porém não foi encontrado o arquivo da mesma'); } $artefatoImagemEntity = $this->_getArtefatoImageEntity($sqArtefato); $hashValidate = new \Zend_Validate_File_Hash(array('hash' => $artefatoImagemEntity->getTxHash(), 'algorithm' => self::HASH_ALGORITHM)); if (!$hashValidate->isValid($file)) { throw new \Core_Exception_ServiceLayer('Autenticidade da imagem violada'); } } catch (\Exception $exp) { $message = sprintf('[SGDoc-e] Exception %s in %s(%d): "%s"', get_class($exp), __METHOD__, $sqArtefato, $exp->getMessage()); error_log($message); throw $exp; } return true; }
/** * @return */ public function listGrid(\Core_Dto_Search $dto) { $listCondition = array('getSqPessoaAbertura' => array("=" => array("AND" => 's.sq_pessoa')), 'getSqUnidadeOrgAbertura' => array("=" => array("AND" => 's.sq_unidade_org')), 'getSqTipoAssuntoSolicitacao' => array("=" => array("AND" => 'tas.sq_tipo_assunto_solicitacao')), 'getSqTipoStatusSolicitacao' => array("=" => array("AND" => 'uss.sq_tipo_status_solicitacao')), 'getSqTipoStatusSolicitacaoNot' => array("<>" => array("AND" => 'uss.sq_tipo_status_solicitacao')), 'getSqPessoaResponsavel' => array("=" => array("AND" => 'uss.sq_pessoa_responsavel')), 'getSqPessoaResponsavelIsNull' => array("IS" => array("AND" => 'uss.sq_pessoa_responsavel')), 'getSqPessoaResponsavelNot' => array("<>" => array("AND" => 'uss.sq_pessoa_responsavel')), 'getSearch' => array("ilike" => array('OR' => array('tas.no_tipo_assunto_solicitacao', 's.ds_solicitacao', 'pes_atendimento.no_pessoa', 'und_abertura.sg_unidade_org', 'pes_abertura.no_pessoa', 'at.nu_artefato', 'formata_numero_digital(at.nu_digital)', 'cast(s.sq_solicitacao as text)', 'tx_email')))); $operationTypeArtefato = 'IS NULL'; if (in_array($dto->getSqTipoArtefato(), array(1, 2))) { $operationTypeArtefato = '='; } $listCondition['getSqTipoArtefato'] = array($operationTypeArtefato => array("AND" => 'taa.sq_tipo_artefato')); if ($dto->getNuArtefato() != '' && $dto->getSqTipoArtefato()) { if ($dto->getSqTipoArtefato() == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) { $listCondition['getNuArtefato'] = array("ilike" => array("OR" => array("formata_numero_artefato(at.nu_artefato, ap.co_ambito_processo)", 'at.nu_artefato'))); } else { $listCondition['getNuArtefato'] = array("ilike" => array("AND" => "formata_numero_digital(at.nu_digital)")); } } $period = null; if ($dto->getDtSolicitacao() != "") { $period = "s.dt_solicitacao"; } $where = $this->getEntityManager()->getRepository('app:Artefato')->getCriteriaText($listCondition, $dto, $period); $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em); $rsm->addScalarResult('sq_solicitacao', 'sqSolicitacao', 'integer'); $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer'); $rsm->addScalarResult('no_tipo_assunto_solicitacao', 'noTipoAssuntoSolicitacao', 'string'); $rsm->addScalarResult('ds_solicitacao', 'dsSolicitacao', 'string'); $rsm->addScalarResult('sq_pessoa_abertura', 'sqPessoaAbertura', 'integer'); $rsm->addScalarResult('no_pessoa_abertura', 'noPessoaAbertura', 'string'); $rsm->addScalarResult('sq_unidade_abertura', 'sqUnidadeAbertura', 'integer'); $rsm->addScalarResult('no_unidade_abertura', 'noUnidadeAbertura', 'string'); $rsm->addScalarResult('sq_tipo_status_solicitacao', 'sqTipoStatusSolicitacao', 'integer'); $rsm->addScalarResult('no_tipo_status_solicitacao', 'noTipoStatusSolicitacao', 'string'); $rsm->addScalarResult('sq_tipo_assunto_solicitacao', 'sqTipoAssuntoSolicitacao', 'integer'); $rsm->addScalarResult('sq_pessoa_responsavel', 'sqPessoaResponsavel', 'integer'); $rsm->addScalarResult('has_image', 'hasImage', 'boolean'); $rsm->addScalarResult('no_pessoa_atendimento', 'noPessoaAtendimento', 'string'); $rsm->addScalarResult('dt_operacao', 'dtOperacao', 'string'); $rsm->addScalarResult('dt_solicitacao', 'dtSolicitacao', 'string'); $rsm->addScalarResult('nu_artefato', 'nuArtefato', 'string'); $rsm->addScalarResult('nu_digital', 'nuDigital', 'string'); $rsm->addScalarResult('sq_tipo_artefato', 'sqTipoArtefato', 'string'); $rsm->addScalarResult('tx_email', 'txEmail', 'string'); $rsm->addScalarResult('total_record', 'totalRecord', 'integer'); $sql = "SELECT COUNT(s.sq_solicitacao) OVER() AS total_record,\n s.sq_solicitacao,\n s.sq_artefato,\n tas.no_tipo_assunto_solicitacao,\n s.ds_solicitacao,\n s.sq_pessoa as sq_pessoa_abertura,\n s.dt_solicitacao,\n pes_abertura.no_pessoa || (COALESCE('<br>(' || tel.nu_ddd || ') ' || tel.nu_telefone, '')) as no_pessoa_abertura,\n s.sq_unidade_org as sq_unidade_abertura,\n und_abertura.sg_unidade_org as no_unidade_abertura,\n uss.sq_tipo_status_solicitacao,\n uss.no_tipo_status_solicitacao,\n tas.sq_tipo_assunto_solicitacao,\n uss.sq_pessoa_responsavel,\n pes_atendimento.no_pessoa as no_pessoa_atendimento,\n uss.dt_operacao,\n CASE\n WHEN at.nu_digital IS NOT NULL THEN\n sgdoce.formata_numero_digital(at.nu_digital)\n ELSE\n sgdoce.formata_numero_artefato(at.nu_artefato, ap.co_ambito_processo)\n END AS nu_artefato,\n sgdoce.formata_numero_digital(at.nu_digital) as nu_digital,\n taa.sq_tipo_artefato,\n EXISTS\n (\n SELECT\n uia.sq_artefato\n FROM\n sgdoce.vw_ultima_imagem_artefato uia\n WHERE\n uia.sq_artefato = at.sq_artefato AND\n taa.sq_tipo_artefato = " . \Core_Configuration::getSgdoceTipoArtefatoDocumento() . "\n UNION\n SELECT\n artv.sq_artefato_filho\n FROM\n sgdoce.artefato_vinculo artv\n JOIN sgdoce.artefato_imagem uia ON uia.st_ativo and artv.sq_artefato_filho = uia.sq_artefato\n AND artv.sq_tipo_vinculo_artefato = " . \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao() . "\n WHERE\n artv.sq_artefato_pai = at.sq_artefato AND\n taa.sq_tipo_artefato = " . \Core_Configuration::getSgdoceTipoArtefatoProcesso() . "\n ) has_image,\n em.tx_email\n FROM sgdoce.solicitacao s\n JOIN sgdoce.tipo_assunto_solicitacao AS tas USING(sq_tipo_assunto_solicitacao)\n LEFT JOIN\n (\n sgdoce.artefato AS at\n INNER JOIN sgdoce.tipo_artefato_assunto AS taa\n ON at.sq_tipo_artefato_assunto = taa.sq_tipo_artefato_assunto\n ) ON s.sq_artefato = at.sq_artefato\n LEFT JOIN sgdoce.artefato_processo AS ap ON at.sq_artefato = ap.sq_artefato\n JOIN corporativo.vw_pessoa AS pes_abertura ON s.sq_pessoa = pes_abertura.sq_pessoa\n LEFT JOIN corporativo.vw_telefone AS tel ON (tel.sq_pessoa = pes_abertura.sq_pessoa AND tel.sq_tipo_telefone = " . \Core_Configuration::getCorpTipoTelefoneInstitucional() . ")\n JOIN corporativo.vw_unidade_org AS und_abertura ON s.sq_unidade_org = und_abertura.sq_pessoa\n JOIN sgdoce.vw_ultimo_status_solicitacao AS uss ON s.sq_solicitacao = uss.sq_solicitacao\n LEFT JOIN corporativo.vw_pessoa AS pes_atendimento ON uss.sq_pessoa_responsavel = pes_atendimento.sq_pessoa\n LEFT JOIN corporativo.vw_email AS em ON em.sq_pessoa = s.sq_pessoa AND em.sq_tipo_email = " . \Core_Configuration::getCorpTipoEmailInstitucional() . "\n %s\n ORDER BY s.dt_solicitacao DESC"; if ($where != "") { $sql = sprintf($sql, "WHERE {$where}"); } else { $sql = sprintf($sql, ""); } return $this->_em->createNativeQuery($sql, $rsm)->useResultCache(false); }
public function saveFirstPieceAction() { $this->getHelper('layout')->disableLayout(); $this->_helper->viewRenderer->setNoRender(TRUE); $params = $this->_getAllParams(); try { $this->_checkAcl(); $this->getService('ArtefatoVinculo')->inserirPeca(array('parent' => $this->getService()->find((int) $params['parent']), 'child' => $this->getService()->find((int) $params['child'])), \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao()); $this->_helper->json(array("status" => TRUE, "message" => 'MN013')); } catch (\Exception $e) { $this->_trataException($e); } }
/** * Metódo que verifica se o modelo está cadastrado. * @return json */ public function saveCapaAction() { $params = $this->_getAllParams(); $this->getHelper('layout')->disableLayout(); $this->_helper->viewRenderer->setNoRender(TRUE); $data = $this->_request->getPost(); $data['nuArtefato'] = str_replace('-', '', str_replace('.', '', str_replace('/', '', $data['nuArtefato']))); $data = $this->getService('MinutaEletronica')->fixNewlines($data); $data = $this->getService('Artefato')->validarDataPrazo($data); $this->getRequest()->setPost($data); // salva o artefato_vinculo $params['sqArtefatoPai'] = $data['artefatoPai']; $params['sqArtefatoFilho'] = $data['sqArtefato']; $params['sqTipoVinculoArtefato'] = \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao(); $params['dtVinculo'] = new \Zend_Date(); $params['inOriginal'] = FALSE; $optionsDtoVinculo = array('entity' => 'Sgdoce\\Model\\Entity\\ArtefatoVinculo', 'mapping' => array('sqArtefatoPai' => array('sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato'), 'sqArtefatoFilho' => array('sqArtefato' => 'Sgdoce\\Model\\Entity\\Artefato'), 'sqTipoVinculoArtefato' => array('sqTipoVinculoArtefato' => 'Sgdoce\\Model\\Entity\\TipoVinculoArtefato'))); $dtoVinculo = Core_Dto::factoryFromData($params, 'entity', $optionsDtoVinculo); $return = $this->getService('ArtefatoVinculo')->findVinculo($dtoVinculo); if (!$return && $data['artefatoPai'] != '') { $params['id'] = $params['sqArtefatoPai']; $this->getService('ArtefatoVinculo')->save($dtoVinculo); $this->getService('ArtefatoVinculo')->finish($dtoVinculo); } $this->_save(); $this->getService()->finish(); $this->_helper->json(array('sucess' => 'true')); }
public function getFirstPiece(\Core_Dto_Search $dto) { $data = $this->_getRepository('app:ArtefatoVinculo')->findBy(array('sqArtefatoPai' => $dto->getSqArtefato(), 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao())); return current($data); }
/** * @return boolean */ public function isDocumentoAutuado($nuDigital, $withMessage = false) { $entity = $this->findBy(array('nuDigital' => $nuDigital)); $entity = current($entity); $data = $this->_getRepository('app:ArtefatoVinculo')->findBy(array('sqArtefatoFilho' => $entity->getSqArtefato(), 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao())); if (count($data)) { if ($withMessage) { $this->getMessaging()->addErrorMessage("Documento já autuado.", "User"); $this->getMessaging()->dispatchPackets(); } return true; } return false; }