/** * 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(); }
/** * * * @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; }
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; } }