Esempio n. 1
0
 /**
  *
  * @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;
     }
 }
Esempio n. 2
0
 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;
     }
 }
Esempio n. 4
0
 /**
  * @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();
 }