Beispiel #1
0
 public function saveEmprestimo(\Core_Dto_Search $dto)
 {
     try {
         $filter = new \Zend_Filter();
         $filter->addFilter(new \Zend_Filter_StringTrim())->addFilter(new \Zend_Filter_StripTags());
         $validate = new \Zend_Validate_StringLength(array('max' => 250, 'encoding' => 'UTF-8'));
         $tipo = $dto->getDestinoInterno();
         $txMotivo = $filter->filter($dto->getTxMotivo());
         $noPessoaEntregue = $filter->filter($dto->getNoPessoaEntregue());
         if (!$validate->isValid($txMotivo)) {
             throw new \Core_Exception_ServiceLayer_Verification('Texto muito logo para o motivo');
         }
         if (!$validate->isValid($noPessoaEntregue)) {
             throw new \Core_Exception_ServiceLayer_Verification('Texto muito logo para o nome da pessoa a quem será entregue o artefato');
         }
         $dtOperacao = \Zend_Date::now();
         $sqTipoHistorico = \Core_Configuration::getSgdoceTipoHistoricoArquivoEmprestado();
         if ($tipo == 'externo') {
             $sqPessoa = $dto->getSqPessoa();
         } else {
             $sqPessoa = $dto->getSqPessoaIcmbioDestino();
         }
         foreach ($dto->getSqArtefato()->getApi() as $method) {
             $entityArtefato = $this->_getRepository('app:Artefato')->find($dto->getSqArtefato()->{$method}());
             $entityCaixaArtefato = $this->_getRepository('app:CaixaArtefato')->findOneBy(array('sqArtefato' => $entityArtefato->getSqArtefato()));
             //gerar historico arquivo com o tipo 8 \Core_Configuration::getSgdoceTipoHistoricoArquivoEmprestado()
             $entityCaixaHistorico = $this->getServiceLocator()->getService('CaixaArtefato')->insertHistorico($entityCaixaArtefato, $dtOperacao, $sqTipoHistorico);
             //registrar o emprestimo
             $entityEmprestimo = $this->_newEntity('app:Emprestimo');
             $entityEmprestimo->setSqCaixaHistorico($entityCaixaHistorico)->setSqPessoaEmprestimo($this->getEntityManager()->getPartialReference('app:VwPessoa', $sqPessoa))->setTxMotivo($txMotivo)->setNoPessoaEntregue($noPessoaEntregue);
             $this->getEntityManager()->persist($entityEmprestimo);
         }
         $this->getEntityManager()->flush();
     } catch (\Exception $e) {
         throw $e;
     }
 }