/**
  * Metodo que está disponivel para ser consumido como soap.
  * Responsavel por cadastrar um comprovante de pagamento
  * 
  * @param string $fornecedorCpfCnpj
  * @param integer $itemId
  * @param string $tipo
  * @param integer $numero
  * @param string $dataEmissao
  * @param string $arquivoNome
  * @param string $arquivoConteudo
  * @param string $comprovanteTipo
  * @param string $comprovanteData
  * @param string $comprovanteJustificativa
  * @param double $comprovanteValor
  * @param string $serie
  * @param string $comprovanteJustificativa
  * @throws Exception
  * @return string Description
  */
 public function cadastrar($fornecedorCpfCnpj, $itemId, $tipo, $numero, $dataEmissao, $arquivoNome, $arquivoConteudo, $comprovanteTipo, $comprovanteData, $comprovanteValor, $comprovanteNumero, $serie = null, $comprovanteJustificativa = null)
 {
     try {
         /**
          *  @todo mover este trecho de buscar fornecedor para um model
          */
         $cnpjcpf = preg_replace('/\\.|-|\\//', '', $fornecedorCpfCnpj);
         $agentesDao = new Agentes();
         $fornecedores = $agentesDao->buscarFornecedor(array(' A.CNPJCPF = ? ' => $cnpjcpf));
         if (!$fornecedores->count()) {
             throw new Exception('Fornecedor não encontrado');
         }
         $fornecedor = $fornecedores->current();
         /**
          * @todo mover o trecho de arquivo para uma classe de model
          */
         $arquivo = base64_decode($arquivoConteudo);
         $filePath = tempnam("/tmp", "ComprovantePagamentoService_");
         file_put_contents($filePath, $arquivo);
         $_FILES['arquivo']['name'] = $arquivoNome;
         // nome
         $_FILES['arquivo']['tmp_name'] = $filePath;
         // nome temporário
         $_FILES['arquivo']['type'] = mime_content_type($filePath);
         // tipo
         $_FILES['arquivo']['size'] = filesize($filePath);
         // tamanho
         $arquivoModel = new ArquivoModel();
         $arquivoModel->cadastrar('arquivo');
         $comprovantePagamentoModel = new ComprovantePagamento(null, $fornecedor->idAgente, $itemId, constant("self::{$tipo}"), $numero, $serie, new DateTime($dataEmissao), $arquivoModel->getId(), constant("self::{$comprovanteTipo}"), new DateTime($comprovanteData), $comprovanteValor, $comprovanteNumero, $comprovanteJustificativa);
         $comprovantePagamentoModel->cadastrar();
     } catch (Exception $exception) {
         $mensagem = $exception->getMessage();
         if (false !== strpos($mensagem, 'DateTime::__construct()')) {
             $matches = array();
             preg_match('#string \\((.+)\\) at#', $mensagem, $matches);
             $mensagem = "A data \"{$matches[1]}\" está fora do formato aceito: \"yyyy-mm-dd\".";
         }
         new Exception($mensagem, null, $exception);
     }
 }
示例#2
0
 /**
  * Salva no banco as modificacoes do comando cvsgit push
  *
  * @access public
  * @return void
  */
 public function salvar()
 {
     $aArquivosCommitados = $this->aArquivos;
     $sTituloPush = $this->sTitulo;
     $oArquivoModel = new ArquivoModel();
     $oDataBase = $this->getDataBase();
     $oDataBase->begin();
     /**
      * Cria header do push 
      * @var integer $iPull - pk da tabela pull
      */
     $iPull = $oDataBase->insert('pull', array('project_id' => $this->getProjeto()->id, 'title' => $sTituloPush, 'date' => date('Y-m-d H:i:s')));
     /**
      * Percorre array de arquivos commitados e salva no banco
      */
     foreach ($aArquivosCommitados as $oCommit) {
         $oDataBase->insert('pull_files', array('pull_id' => $iPull, 'name' => $oCommit->getArquivo(), 'type' => $oCommit->getTipo(), 'tag' => $oCommit->getTagArquivo(), 'message' => $oCommit->getMensagem()));
         /**
          * Remove arqui da lista para commit 
          */
         $oArquivoModel->removerArquivo($oCommit->getArquivo());
     }
     $oDataBase->commit();
 }
 public function buscar($where = array(), $order = array(), $tamanho = -1, $inicio = -1)
 {
     $select = $this->select();
     if (null !== $this->getIdCumprimentoObjeto()) {
         $select->where('idCumprimentoObjeto = ?', $this->getIdCumprimentoObjeto());
     }
     if (null !== $this->getPosicao()) {
         $select->where('idPosicao = ?', $this->getPosicao());
     }
     if (0 === count($select->getPart(Zend_Db_Select::WHERE))) {
         throw new BadMethodCallException('Não foi usado nenhum filtro');
     }
     $imagensDoObjeto = new ArrayObject();
     $arquivoModel = new ArquivoModel();
     $this->getAdapter()->getProfiler()->setEnabled(true);
     foreach ($this->fetchAll($select) as $ImagemDoObjetoRow) {
         $arquivoModel->setId($ImagemDoObjetoRow->idArquivo);
         $imagemDoObjeto = new self();
         $imagemDoObjeto->setIdCumprimentoObjetoXArquivo($ImagemDoObjetoRow->idCumprimentoObjetoXArquivo)->setIdCumprimentoObjeto($ImagemDoObjetoRow->idCumprimentoObjeto)->setArquivo($arquivoModel->buscar())->setPosicao($ImagemDoObjetoRow->idPosicao);
         $imagensDoObjeto->append($imagemDoObjeto);
     }
     return $imagensDoObjeto;
 }
 /**
  * 
  */
 public function atualizar()
 {
     $this->validarCadastrar();
     $arquivoModel = new ArquivoModel();
     $arquivoModel->deletar($this->arquivo);
     $arquivoModel->cadastrar('arquivo');
     $this->update(array('idFornecedor' => $this->fornecedor, 'tpDocumento' => $this->tipo, 'nrComprovante' => $this->numero, 'nrSerie' => $this->serie, 'dtEmissao' => $this->dataEmissao->format('Y-m-d h:i:s'), 'idArquivo' => $arquivoModel->getId(), 'vlComprovacao' => $this->comprovanteValor, 'dtPagamento' => $this->comprovanteData->format('Y-m-d h:i:s'), 'dsJustificativa' => $this->comprovanteJustificativa, 'tpFormaDePagamento' => $this->comprovanteTipo, 'nrDocumentoDePagamento' => $this->comprovanteNumero), array('idComprovantePagamento = ?' => $this->comprovantePagamento));
     $this->comprovarPlanilhaAtualizarStatus(4, $this->comprovantePagamento);
 }
 /**
  * 
  */
 public function cadastrarcomprovacaopagamentoAction()
 {
     try {
         $this->verificarPermissaoAcesso(false, true, false);
         $request = $this->getRequest();
         $pais = $this->getRequest()->getParam('pais');
         if (empty($pais)) {
             throw new Exception('Favor preencher o campo "Nacionalidade do Fornecedor"');
         }
         $arquivoModel = new ArquivoModel();
         if ('Brasil' == $pais) {
             $arquivoModel->cadastrar('arquivo');
             $idArquivo = $arquivoModel->getId();
             if (empty($idArquivo)) {
                 throw new Exception('O arquivo deve ser PDF.');
             }
             $comprovantePagamentoModel = new ComprovantePagamento(null, $request->getParam('idAgente'), $request->getParam('itemId'), $request->getParam('tpDocumento'), $request->getParam('nrComprovante'), $request->getParam('nrSerie'), $request->getParam('dtEmissao') ? new DateTime(data::dataAmericana($request->getParam('dtEmissao'))) : null, $arquivoModel->getId(), $request->getParam('tpFormaDePagamento'), new DateTime(), str_replace(',', '.', str_replace('.', '', $request->getParam('vlComprovado'))), $request->getParam('nrDocumentoDePagamento'), $request->getParam('dsJustificativa'));
         } else {
             $arquivoModel->cadastrar('arquivoInternacional');
             $idArquivo = $arquivoModel->getId();
             if (empty($idArquivo)) {
                 throw new Exception('O arquivo deve ser PDF.');
             }
             $comprovantePagamentoModel = new ComprovantePagamentoInvoice(null, new FornecedorInvoice(null, $pais, $request->getParam('nomeRazaoSocialInternacional'), $request->getParam('enderecoInternacional')), $request->getParam('itemId'), $request->getParam('nif'), $request->getParam('nrSerieInternacional'), $request->getParam('dtEmissaoInternacional') ? new DateTime(data::dataAmericana($request->getParam('dtEmissaoInternacional'))) : null, $arquivoModel->getId(), new DateTime(), str_replace(',', '.', str_replace('.', '', $request->getParam('vlComprovado'))), $request->getParam('dsJustificativaInternacional'));
         }
         $comprovantePagamentoModel->cadastrar();
         $this->_helper->flashMessenger('Comprovante cadastrado com sucesso.');
         $this->_helper->flashMessengerType('CONFIRM');
         $this->_redirect(str_replace($this->view->baseUrl(), '', $this->view->url(array('controller' => 'comprovarexecucaofinanceira', 'action' => 'comprovacaopagamento', 'idusuario' => $this->view->idusuario, 'idpronac' => $request->getParam('idpronac')))));
     } catch (Exception $e) {
         $this->view->message = $e->getMessage();
         $this->view->message_type = 'ERROR';
         $this->_forward('comprovacaopagamento');
     }
 }