Esempio n. 1
0
 public function getSolicitacaoDuplicado(\Core_Dto_Search $dto)
 {
     $rsm = new \Doctrine\ORM\Query\ResultSetMapping($this->_em);
     $rsm->addScalarResult('sq_artefato', 'sqArtefato', 'integer');
     $rsm->addScalarResult('sq_solicitacao', 'sqSolicitacao', 'integer');
     $rsm->addScalarResult('sq_tipo_assunto_solicitacao', 'sqTipoAssuntoSolicitacao', 'integer');
     $rsm->addScalarResult('ds_solicitacao', 'dsSolicitacao', 'string');
     $rsm->addScalarResult('dt_solicitacao', 'dtSolicitacao', 'zenddate');
     $sql = 'SELECT s.*
               FROM sgdoce.solicitacao s
               JOIN sgdoce.vw_ultimo_status_solicitacao uss USING (sq_solicitacao)
              WHERE s.sq_artefato = :sqArtefato
                AND s.sq_tipo_assunto_solicitacao = :sqTipoAssuntoSolicitacao
                AND s.sq_pessoa = :sqPessoa
                AND s.sq_unidade_org = :sqUnidadeOrg
                AND uss.sq_tipo_status_solicitacao <> :sqStatusAberta';
     $nq = $this->_em->createNativeQuery($sql, $rsm)->setParameter('sqArtefato', $dto->getSqArtefato())->setParameter('sqTipoAssuntoSolicitacao', $dto->getSqTipoAssuntoSolicitacao())->setParameter('sqPessoa', $dto->getSqPessoa())->setParameter('sqUnidadeOrg', $dto->getSqUnidadeOrg())->setParameter('sqStatusAberta', \Core_Configuration::getSgdoceTipoStatusSolicitacaoFinalizada())->useResultCache(false);
     return $nq->getScalarResult();
 }
Esempio n. 2
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();
 }