/**
  * Ação inicial de Modelos de Minutas
  */
 public function createAction()
 {
     parent::createAction();
     $this->view->arrTipoEtiqueta = $this->getService('TipoEtiqueta')->listItems();
     $this->view->sqTipoEtiquetaEletronica = Core_Configuration::getSgdoceTipoEtiquetaEletronica();
     $this->view->arrQtdeEtiqueta = $this->getService('QuantidadeEtiqueta')->listItems();
 }
Esempio n. 2
0
 /**
  *
  *
  * @param \Core_Dto_Search $search
  * @return boolean
  */
 public function verificaLiberacaoDigitalEletronica(\Core_Dto_Search $search)
 {
     $qb = $this->_em->createQueryBuilder();
     $qb->select('le.sqLoteEtiqueta', 'edl.nuQuantidadeDisponivel')->from('app:LoteEtiqueta', 'le')->innerJoin('le.sqEtiquetaDisponivelLote', 'edl')->where($qb->expr()->eq('le.sqUnidadeOrg', ':sqUnidadeOrg'))->andWhere($qb->expr()->eq('le.nuAno', ':nuAno'))->andWhere($qb->expr()->eq('le.sqTipoEtiqueta', \Core_Configuration::getSgdoceTipoEtiquetaEletronica()))->orderBy('le.sqLoteEtiqueta', 'ASC')->setParameter('sqUnidadeOrg', $search->getSqUnidadeOrg())->setParameter('nuAno', $search->getNuAno());
     $return = false;
     $arrResult = $qb->getQuery()->execute();
     foreach ($arrResult as $lote) {
         //existe um lote
         if ($lote['nuQuantidadeDisponivel'] > 0) {
             $return = true;
             break;
         }
     }
     return $return;
 }
Esempio n. 3
0
 public function preSave($service)
 {
     try {
         if (!$this->_data['sqQuantidadeEtiqueta']) {
             throw new \Core_Exception_ServiceLayer_Verification('O campo Quantidade de Páginas é de preenchimento obrigatório.');
         }
         if (!$this->_data['sqTipoEtiqueta']) {
             throw new \Core_Exception_ServiceLayer_Verification('O campo Tipo de Etiqueta é de preenchimento obrigatório.');
         }
         if (!$this->_data['sqUnidadeOrg']) {
             throw new \Core_Exception_ServiceLayer_Verification('O campo Unidade é de preenchimento obrigatório.');
         }
         $params = $this->_data;
         $nuAno = date('Y');
         $params['nuAno'] = $nuAno;
         $nuInicialNupSiorg = NULL;
         $nuFinalNupSiorg = NULL;
         $params['inLoteComNupSiorg'] = isset($params['inLoteComNupSiorg']) ? (bool) $params['inLoteComNupSiorg'] : TRUE;
         $sqTipoEtiqueta = (int) $this->_data['sqTipoEtiqueta']->getSqTipoEtiqueta();
         //para lote eletronico força o uso de NUP
         if ($sqTipoEtiqueta == \Core_Configuration::getSgdoceTipoEtiquetaEletronica()) {
             $params['inLoteComNupSiorg'] = TRUE;
         }
         //se for com nup validar se a unidade pode gerar etiqueta
         if ($params['inLoteComNupSiorg']) {
             $entityOrgao = $this->_getRepository('app:VwOrgao')->findOneBySqUnidadeOrg($params['sqUnidadeOrg']->getSqUnidadeOrg());
             if (!$entityOrgao) {
                 throw new \Core_Exception_ServiceLayer_Verification('Essa unidade não possui registro no SIORG para geração de etiqueta com NUP');
             }
         }
         //RN #11705
         $this->_checkLiberacaoLoteUnidade($params);
         /* @var $service Etiqueta\Service\GerarEtiqueta */
         $sqQuantidadeEtiqueta = $service->getEntity()->getSqQuantidadeEtiqueta()->getSqQuantidadeEtiqueta();
         $search = \Core_Dto::factoryFromData(array('nuAno' => $nuAno), 'search');
         //ultimo lote do ano
         $ultimoLoteUnidade = $this->_getRepository()->getUltimoLotePessoaUnidadeOrg($search);
         /* @var $service \Sgdoce\Model\Entity\QuantidadeEtiqueta */
         $eQuantidadeEtiqueta = $this->_getRepository('app:QuantidadeEtiqueta')->find($sqQuantidadeEtiqueta);
         $qtdeEtiquetaGerar = $eQuantidadeEtiqueta->getNuQuantidade();
         if (count($ultimoLoteUnidade) === 0) {
             //1º Lote do ano
             if ($params['inLoteComNupSiorg']) {
                 $nuInicialNupSiorg = 1;
                 $nuFinalNupSiorg = $qtdeEtiquetaGerar;
             }
             $nuInicial = 1;
             $nuFinal = $qtdeEtiquetaGerar;
         } else {
             $nuInicial = $ultimoLoteUnidade[0]['nuFinal'] + 1;
             $nuFinal = $ultimoLoteUnidade[0]['nuFinal'] + $qtdeEtiquetaGerar;
             /**
              * se for lote com nup e o ultimo lote não tiver sido com nup
              * obter o ultimo lote com nup para verificar qual é o proximo range
              */
             if ($params['inLoteComNupSiorg']) {
                 $dtoUltimoLoteComNup = \Core_Dto::factoryFromData(array('inLoteComNupSiorg' => TRUE, 'sqUnidadeOrg' => $service->getEntity()->getSqUnidadeOrg()->getSqUnidadeOrg(), 'nuAno' => $nuAno), 'search');
                 $ultimoLoteNupUnidade = $this->_getRepository()->getUltimoLotePessoaUnidadeOrg($dtoUltimoLoteComNup);
                 /**
                  * se ainda não existe lote com nup começa o 1º range
                  */
                 if (count($ultimoLoteNupUnidade) === 0) {
                     //1º Lote com NUP
                     $nuInicialNupSiorg = 1;
                     $nuFinalNupSiorg = $qtdeEtiquetaGerar;
                 } else {
                     $nuInicialNupSiorg = $ultimoLoteNupUnidade[0]['nuFinalNupSiorg'] + 1;
                     $nuFinalNupSiorg = $ultimoLoteNupUnidade[0]['nuFinalNupSiorg'] + $qtdeEtiquetaGerar;
                 }
             } else {
                 $nuInicialNupSiorg = $ultimoLoteUnidade[0]['nuFinalNupSiorg'] + 1;
                 $nuFinalNupSiorg = $ultimoLoteUnidade[0]['nuFinalNupSiorg'] + $qtdeEtiquetaGerar;
             }
         }
         $service->getEntity()->setNuAno($nuAno);
         $service->getEntity()->setNuInicial($nuInicial);
         $service->getEntity()->setNuFinal($nuFinal);
         $service->getEntity()->setNuInicialNupSiorg($nuInicialNupSiorg);
         $service->getEntity()->setNuFinalNupSiorg($nuFinalNupSiorg);
         $service->getEntity()->setInLoteComNupSiorg($params['inLoteComNupSiorg']);
         $service->getEntity()->setDtCriacao(\Zend_Date::now());
     } catch (\Exception $e) {
         throw $e;
     }
 }
 public function sicAction()
 {
     parent::createAction();
     $this->getCombo();
     $dto = Core_Dto::factoryFromData(array('sqPessoaCorporativo' => \Core_Configuration::getSgdoceUnidadeCgu(), 'sqTipoPessoa' => \Core_Configuration::getCorpTipoPessoaUnidadeExt()), 'search');
     $this->view->data->setInEletronico(true);
     $this->view->isLoteEletronico = true;
     $this->view->disabledProcedencia = null;
     $this->view->tipoDigital = \Core_Configuration::getSgdoceTipoEtiquetaEletronica();
     $this->view->isSIC = true;
     $this->view->CGU = $this->getService('Pessoa')->getPessoa($dto);
     $this->view->docSIC = $this->getService('TipoDocumento')->find(\Core_Configuration::getSgdoceTipoDocumentoSic());
     $this->render('form');
 }
 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();
     $this->view->isSIC = $this->view->data->getSqTipoDocumento()->getSqTipoDocumento() == \Core_Configuration::getSgdoceTipoDocumentoSic();
     $this->view->docSIC = $this->view->data->getSqTipoDocumento();
     $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);
     if (null === $this->view->data->getSqLoteEtiqueta()) {
         $this->view->isLoteEletronico = true;
     } else {
         $sqTipoEtiqueta = $this->view->data->getNuDigital()->getSqLoteEtiqueta()->getSqTipoEtiqueta()->getSqTipoEtiqueta();
         if ($sqTipoEtiqueta == \Core_Configuration::getSgdoceTipoEtiquetaEletronica()) {
             $this->view->isLoteEletronico = true;
         }
     }
     // 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 = $this->view->dadosOrigem[1];
         //1 = interno  -- 3 = externo
         if ($procedenciaInterno == 1) {
             $disabledProcedencia = 'chekProcedenciaExterno';
         } else {
             $disabledProcedencia = 'chekProcedenciaInterno';
         }
         $this->view->disabledProcedencia = $disabledProcedencia;
     }
 }