Esempio n. 1
0
 /**
  * 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;
 }