/** * 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 gera o documento a partir da minuta * @param array $params * @param array $params * @return object */ private function gerarDocumento($params) { $params['sqStatusArtefato'] = \Core_Configuration::getSgdoceStatusAssinada(); $params['nuDigital'] = $this->getService('Artefato')->createNumeroDigital(); // recuperar o ultimo sequencia por unidade e tipo de documento $ultimNumeroArtefato = $this->getService('Artefato')->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->getService('Artefato')->transformarMinutaDocumentoEletronico($searchDto); //atualiza o numero sequencial para o numero utilizado $this->getService('Artefato')->atualizarSequencial($ultimNumeroArtefato); $this->alteraHistoricoArtefato($params); return TRUE; }