/** * Método que gera os artefatos de acordo com a quantidde de destinatários * @param Sgdoce\Model\Entity\Artefato $artefato * @return boolean */ public function gerarVias($artefato, $params) { $destinatarios = $this->getServiceLocator()->getService('ArtefatoMinuta')->getPessoaDestinatarioArtefato($artefato); $qtDestino = $destinatarios['qtdDestinatario']; for ($i = 1; $i < $qtDestino; $i++) { $artefatoClone = $this->saveArtefatoClone($artefato); $params['sqArtefato'] = $artefatoClone->getSqArtefato(); $params['nuDigital'] = $this->createNumeroDigital(); // recuperar o ultimo sequencia por unidade e tipo de documento $ultimNumeroArtefato = $this->recuperaProximoNumeroArtefato($params); $numeroSequencial = $ultimNumeroArtefato->getNuSequencial(); $sequencial = str_pad($numeroSequencial + 1, 4, '0', STR_PAD_LEFT) . '/' . date('Y'); $params['nuArtefato'] = $sequencial; $searchDto = \Core_Dto::factoryFromData($params, 'search'); $this->transformarMinutaDocumentoEletronico($searchDto); //atualiza o numero sequencial para o numero utilizado $this->atualizarSequencial($ultimNumeroArtefato); //altera o historico do artefato para criado e alterado $params['sqStatusArtefato'] = \Core_Configuration::getSgdoceStatusProduzida(); $this->alterarHistoricoArtefato($params); $params['sqStatusArtefato'] = \Core_Configuration::getSgdoceStatusAssinada(); $this->alterarHistoricoArtefato($params); $params['sqOcorrencia'] = \Core_Configuration::getSgdoceSqOcorrenciaCadastrar(); $this->alterarHistoricoArtefato($params); } return TRUE; }
/** * * Método que adiciona filtro de acordo com a caixa de minutas * @param \Doctrine\ORM\QueryBuilder $queryBuilder * @param \Core_Dto_Search $dto */ protected function addFilterStatus(\Doctrine\ORM\QueryBuilder &$queryBuilder, \Core_Dto_Search $dto) { switch ($dto->getView()) { default: // RECEBIDAS E DEMAIS $queryBuilder->andWhere('((vcm.sqStatusArtefato = :sqStatusArtefato2')->setParameter('sqStatusArtefato2', \Core_Configuration::getSgdoceStatusRecebida())->orWhere('vcm.sqStatusArtefato = :sqStatusArtefato4))')->setParameter('sqStatusArtefato4', \Core_Configuration::getSgdoceStatusDevolvida())->andWhere('vcm.sqPessoa = :sqPessoa')->setParameter('sqPessoa', $dto->getSqPessoa()); break; case self::TIPO_VISUALIZACAO_ENVIADA: // ENVIADA $queryBuilder->andWhere('(vcm.sqStatusArtefato = :sqStatusArtefato201')->setParameter('sqStatusArtefato201', self::ZER)->andWhere('vcm.sqPessoa = :sqPessoa)')->setParameter('sqPessoa', $dto->getSqPessoa()); break; case self::TIPO_VISUALIZACAO_EM_ACOMPANHAMENTO: // EM ACOMPANHAMENTO $queryBuilder->andWhere('(vcm.sqPessoa = :sqPessoa)')->setParameter('sqPessoa', $dto->getSqPessoa()); break; case self::TIPO_VISUALIZACAO_PRODUZIDA: // PRODUZIDA $queryBuilder->andWhere('(vcm.sqStatusArtefato = :sqStatusArtefato49')->setParameter('sqStatusArtefato49', \Core_Configuration::getSgdoceStatusProduzida())->andWhere('vcm.sqPessoa = :sqPessoa)')->setParameter('sqPessoa', $dto->getSqPessoa()); break; } }