/** * * @param $entity * @param \Cor_Dto_Search $dto */ public function postInsert($entity, $dto = NULL) { try { $statusSolicitacaoData = array('sqSolicitacao' => $entity, 'sqTipoStatusSolicitacao' => \Core_Configuration::getSgdoceTipoStatusSolicitacaoAberta()); $dtoStatusSolicitacao = \Core_Dto::factoryFromData($statusSolicitacaoData, 'search'); $this->getServiceLocator()->getService('StatusSolicitacao')->newStatusSolicitacao($dtoStatusSolicitacao); $this->getEntityManager()->getConnection()->commit(); } catch (\Exception $e) { $this->getEntityManager()->getConnection()->rollback(); throw $e; } }
public function getNotification() { $rsm = new \Doctrine\ORM\Query\ResultSetMapping(); $rsm->addScalarResult('tipo', 'tipo', 'integer'); $rsm->addScalarResult('intervalo', 'intervalo', 'integer'); $rsm->addScalarResult('qtde', 'qtde', 'integer'); $sqlSGI = ""; $sqUnidadeOrg = (int) \Core_Integration_Sica_User::getUserUnit(); if (\Zend_Registry::get('isUserSgi')) { $sqlSGI = "UNION\n\n SELECT 2 AS tipo\n ,2 AS intervalo\n ,COUNT(*) AS qtde\n FROM solicitacao AS s\n JOIN vw_ultimo_status_solicitacao AS vuss USING (sq_solicitacao)\n WHERE vuss.sq_tipo_status_solicitacao = " . \Core_Configuration::getSgdoceTipoStatusSolicitacaoAberta() . "\n HAVING COUNT(*) > 0\n\n UNION\n\n SELECT 2 AS tipo\n ,1 AS intervalo\n ,COUNT(*) AS qtde\n FROM solicitacao AS s\n JOIN vw_ultimo_status_solicitacao as vuss USING (sq_solicitacao)\n WHERE vuss.sq_tipo_status_solicitacao = " . \Core_Configuration::getSgdoceTipoStatusSolicitacaoEmAndamento() . "\n AND vuss.sq_pessoa_responsavel = :sqPessoa\n HAVING COUNT(*) > 0"; } $sql = "WITH dias_prazo_demanda AS (\n SELECT 1 AS tipo\n ,EXTRACT(day FROM dt_prazo - CURRENT_DATE) AS qtd_dias\n ,sq_pessoa_destino\n ,sq_unidade_org_pessoa_destino\n ,sq_prazo\n FROM prazo\n WHERE dt_resposta IS NULL\n )\n\n SELECT 1 AS tipo\n ,5 AS intervalo\n ,COUNT(*) AS qtde\n FROM prazo\n WHERE dt_resposta is null\n AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n GROUP BY tipo\n\n UNION\n\n SELECT tipo\n ,4 AS intervalo\n ,COUNT(*) AS qtde\n FROM dias_prazo_demanda\n WHERE qtd_dias > 5\n AND sq_pessoa_destino = :sqPessoa\n AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n GROUP BY tipo\n\n UNION\n\n SELECT tipo\n ,3 AS intervalo\n ,COUNT(*) AS qtde\n FROM dias_prazo_demanda\n WHERE qtd_dias BETWEEN 2 AND 5\n AND sq_pessoa_destino = :sqPessoa\n AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n GROUP BY tipo\n\n UNION\n\n SELECT tipo\n ,2 AS intervalo\n ,COUNT(*) AS qtde\n FROM dias_prazo_demanda\n WHERE qtd_dias between 0 AND 1\n AND sq_pessoa_destino = :sqPessoa\n AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n GROUP BY tipo\n\n UNION\n\n SELECT tipo\n ,1 AS intervalo\n ,COUNT(*) AS qtde\n FROM dias_prazo_demanda\n WHERE qtd_dias < 0\n AND sq_pessoa_destino = :sqPessoa\n AND sq_unidade_org_pessoa_destino = {$sqUnidadeOrg}\n GROUP BY tipo\n\n {$sqlSGI}\n\n ORDER BY tipo, intervalo"; $query = $this->_em->createNativeQuery($sql, $rsm); $query->setParameter('sqPessoa', \Core_Integration_Sica_User::getPersonId()); return $query->execute(); }
public function excluirImagemAction() { $this->_helper->layout->disableLayout(); $params = $this->_getAllParams(); $entSolicitacao = $this->getService()->find($params['id']); if ($this->getRequest()->isPost()) { $entArtefato = $entSolicitacao->getSqArtefato(); $entArtefatoImagem = $this->getService('ArtefatoImagem')->excluirImagem($entArtefato, $params['txObservacao']); $controller = $this->getRequest()->getControllerName(); $action = 'index'; $caixa = ''; $dto = \Core_Dto::factoryFromData($params, 'search'); /*switch( $dto->getSqTipoStatusSolicitacao() ){ case \Core_Configuration::getSgdoceTipoStatusSolicitacaoFinalizada(): $caixa = 'collapseTree'; break; case \Core_Configuration::getSgdoceTipoStatusSolicitacaoEmAndamento(): $caixa = 'collapseTwo'; break; case \Core_Configuration::getSgdoceTipoStatusSolicitacaoDevolvidaTriagem(): case \Core_Configuration::getSgdoceTipoStatusSolicitacaoAberta(): $caixa = 'collapseOne'; break; default: $caixa = 'collapseTwo'; }*/ if ($dto->getSqTipoStatusSolicitacao() == \Core_Configuration::getSgdoceTipoStatusSolicitacaoDevolvidaTriagem() || $dto->getSqTipoStatusSolicitacao() == \Core_Configuration::getSgdoceTipoStatusSolicitacaoAberta()) { $caixa = 'collapseOne'; } else { $caixa = 'collapseTwo'; } $this->_redirect = array('controller' => $controller, 'action' => $action, 'params' => array('caixa' => $caixa)); return $this->_redirectActionDefault('index'); } if ($entSolicitacao) { $entArtefato = $entSolicitacao->getSqArtefato(); $nuArtefato = $entArtefato->getNuDigital() ? str_pad($entArtefato->getNuDigital()->getNuEtiqueta(), 7, '0', STR_PAD_LEFT) : $this->getService('Processo')->formataProcessoAmbitoFederal($entArtefato); $this->view->txDefaultTxObservacao = "Exclusão de imagem do artefato: " . $nuArtefato . " conforme demanda: #" . $entSolicitacao->getSqSolicitacao(); $this->view->entArtefato = $entArtefato; } }
/** * @param Solicitacao $entSolicitacao * * @return boolean */ protected function _sendStatus($entSolicitacao, $txComentario) { // EMAIL $ultimoStatus = $this->getUltimoStatusSolicitacao($entSolicitacao->getSqSolicitacao()); $listaAndamentos = array(); $ultimoAndamento = array(); if ($ultimoStatus['sqTipoStatusSolicitacao'] == \Core_Configuration::getSgdoceTipoStatusSolicitacaoEmAndamento()) { $listaAndamentos = $this->getStatusPorTipo($entSolicitacao->getSqSolicitacao(), \Core_Configuration::getSgdoceTipoStatusSolicitacaoEmAndamento()); $ultimoAndamento = current($listaAndamentos); } $status = array(\Core_Configuration::getSgdoceTipoStatusSolicitacaoAberta() => 'Aguardando atendimento', \Core_Configuration::getSgdoceTipoStatusSolicitacaoEmAndamento() => 'Com o atendente', \Core_Configuration::getSgdoceTipoStatusSolicitacaoFinalizada() => 'Atendimento concluído'); if (count($listaAndamentos) && $ultimoAndamento['rownum'] > 1) { $status[\Core_Configuration::getSgdoceTipoStatusSolicitacaoEmAndamento()] = "Encaminhado para um novo atendente"; } $subject = 'Andamento da solicitação nº ' . $entSolicitacao->getSqSolicitacao() . "/" . $entSolicitacao->getDtSolicitacao()->get(\Zend_Date::YEAR) . ". (" . $ultimoStatus['noTipoStatusSolicitacao'] . ")"; $arguments = array('status' => $status, 'entSolicitacao' => $entSolicitacao, 'ultimoStatus' => $ultimoStatus, 'imgLogo' => ArtefatoImagemService::PATH_IMAGE_LOGO, 'txComentario' => $ultimoStatus['noTipoStatusSolicitacao'] == self::T_DEMANDA_FINALIZADA ? $txComentario : NULL); $ultimoStatus['txEmail'] = trim($ultimoStatus['txEmail']); $objZMail = new \Zend_Validate_EmailAddress(); if ($objZMail->isValid($ultimoStatus['txEmail'])) { $SgdoceMail = new \Sgdoce_Mail(); $SgdoceMail->prepareBodyHtml('solicitacao_status.phtml', $arguments); $SgdoceMail->setRecipients(array('para' => array($ultimoStatus['noPessoaSolicitacao'] => $ultimoStatus['txEmail']))); $SgdoceMail->setSubject($subject); $SgdoceMail->send(); } else { $this->getMessaging()->addErrorMessage('MN177', 'User'); } $this->getMessaging()->dispatchPackets(); }