/**
  * 
  */
 public function pesquisarAction()
 {
     $comprovanteParamentoModel = new ComprovantePagamento();
     $this->view->comprovantes = $comprovanteParamentoModel->pesquisarComprovantePorItem($this->getRequest()->getParam('item'));
     array_walk($this->view->comprovantes, function (&$value) {
         $value = array_map('utf8_encode', $value);
     });
 }
 /**
  * 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);
     }
 }
 function __construct($id, $fornecedor, $item, $nif, $serie, $dataEmissao, $arquivo, $comprovanteData, $valor, $justificativa)
 {
     parent::__construct();
     $this->comprovantePagamento = $id;
     $this->fornecedor = $fornecedor;
     $this->tipo = $serie;
     // Tipo Invoice
     $this->item = $item;
     $this->nif = $nif;
     $this->serie = $serie;
     $this->dataEmissao = $dataEmissao;
     $this->arquivo = $arquivo;
     $this->comprovanteData = $comprovanteData;
     $this->comprovanteValor = $valor;
     $this->comprovanteJustificativa = $justificativa;
 }
 public function cadastrarrespostadiligenciaAction()
 {
     $post = Zend_Registry::get('post');
     $idArquivo = '';
     $Mensagem = '';
     if (!empty($_FILES) && is_file($_FILES['arquivo']['tmp_name'])) {
         $arquivoNome = $_FILES['arquivo']['name'];
         // nome
         $arquivoTemp = $_FILES['arquivo']['tmp_name'];
         // nome temporário
         $arquivoTipo = $_FILES['arquivo']['type'];
         // tipo
         $arquivoTamanho = $_FILES['arquivo']['size'];
         // tamanho
         if (!empty($arquivoNome) && !empty($arquivoTemp)) {
             $arquivoExtensao = Upload::getExtensao($arquivoNome);
             // extensão
             $arquivoBinario = Upload::setBinario($arquivoTemp);
             // binário
             $arquivoHash = Upload::setHash($arquivoTemp);
             // hash
         }
         $tipos = array('pdf');
         if (!in_array(strtolower($arquivoExtensao), $tipos)) {
             parent::message("Favor selecionar o arquivo no formato PDF!", "diligenciar/listardiligenciaproponente?idPronac={$this->idPronac}", "ALERT");
         }
         if (!empty($this->idPronac) && $this->idPronac != "0") {
             $dataString = file_get_contents($arquivoTemp);
             $arrData = unpack("H*hex", $dataString);
             $data = "0x" . $arrData['hex'];
             // ==================== PERSISTE DADOS DO ARQUIVO =================//
             $dadosArquivo = array('nmArquivo' => $arquivoNome, 'sgExtensao' => $arquivoExtensao, 'biArquivo' => $data, 'dsDocumento' => 'Resposta de Diligência', 'idPronac' => $this->idPronac, 'idTipoDocumento' => 3, 'idDiligencia' => $post->idDiligencia);
             $vw = new vwAnexarDocumentoDiligencia();
             $vw->inserirUploads($dadosArquivo);
         }
         $dados = array('DtResposta' => new Zend_Db_Expr('GETDATE()'), 'Resposta' => $_POST['dsResposta'], 'idProponente' => $this->usuarioLogado, 'stEnviado' => 'N');
         $where = "idDiligencia = {$post->idDiligencia}";
         $diligenciaDAO = new Diligencia();
         $resp = $diligenciaDAO->update($dados, $where);
     }
     $verificacaodao = new Verificacao();
     $Projetosdao = new Projetos();
     $PreProjetodao = new PreProjeto();
     $DocumentosExigidosDao = new DocumentosExigidos();
     //xd($post);
     $this->view->idPronac = $this->idPronac;
     $this->view->idPreProjeto = $this->idPreProjeto;
     $this->view->idProduto = $this->idProduto;
     $this->view->idDiligencia = $this->idDiligencia;
     $this->view->idAvaliacaoProposta = $this->idAvaliacaoProposta;
     $this->view->idUsuario = Zend_Auth::getInstance()->getIdentity()->IdUsuario;
     if ($this->view->idDiligencia) {
         $resp = $Projetosdao->listarDiligencias(array('pro.IdPRONAC = ?' => $this->view->idPronac, 'dil.idDiligencia = ?' => $this->view->idDiligencia));
         $this->view->nmCodigo = 'PRONAC';
         $this->view->nmTipo = 'DO PROJETO';
         $this->view->tipoDiligencia = $resp[0]->tipoDiligencia;
     }
     if ($this->view->idAvaliacaoProposta) {
         if ($this->idPronac) {
             $projeto = $Projetosdao->buscar(array('IdPRONAC = ?' => $this->idPronac));
             $idPreProjeto = $projeto[0]->idProjeto;
         }
         if ($this->idPreProjeto) {
             $idPreProjeto = $this->idPreProjeto;
         }
         $resp = $PreProjetodao->listarDiligenciasPreProjeto(array('pre.idPreProjeto = ?' => $idPreProjeto, ' aval.idAvaliacaoProposta = ?' => $this->view->idAvaliacaoProposta));
         $this->view->nmCodigo = 'Nr PROPOSTA';
         $this->view->nmTipo = 'DA PROPOSTA';
     }
     $arquivo = new Arquivo();
     $arquivos = $arquivo->buscarAnexosDiligencias($this->idDiligencia);
     $this->view->arquivos = $arquivos;
     $this->view->arquivos = $arquivos;
     $this->view->pronac = $resp[0]->pronac;
     $this->view->nomeProjeto = $resp[0]->nomeProjeto;
     $this->view->dataSolicitacao = date('d/m/Y H:i', strtotime($resp[0]->dataSolicitacao));
     if ($resp[0]->dataResposta != '') {
         $this->view->dataResposta = date('d/m/Y H:i', strtotime($resp[0]->dataResposta));
     }
     $this->view->solicitacao = $resp[0]->Solicitacao;
     $this->view->resposta = $resp[0]->Resposta;
     if ($resp[0]->idCodigoDocumentosExigidos) {
         $documento = $DocumentosExigidosDao->listarDocumentosExigido($resp[0]->idCodigoDocumentosExigidos);
         $this->view->DocumentosExigido = $documento[0]->Descricao;
         $this->view->Opcao = $documento[0]->Opcao;
     }
     if (!empty($resp[0]->stEnviado) && !empty($documento)) {
         $this->view->retorna = "true";
     }
     $this->view->DocumentoExigido = $DocumentosExigidosDao->listarDocumentosExigido();
     # comprovantes recusados
     $comprovantePagamentoModel = new ComprovantePagamento();
     $this->view->comprovantesDePagamento = $comprovantePagamentoModel->pesquisarComprovanteRecusado($this->idPronac);
 }
 /**
  * 
  */
 public function deletar()
 {
     if (!$this->comprovantePagamento) {
         throw new Exception('Comprovante nao informado.');
     }
     $tbComprovantePagamentoxPlanilhaAprovacao = new ComprovantePagamentoxPlanilhaAprovacao();
     $tbComprovantePagamentoxPlanilhaAprovacao->delete(array('idComprovantePagamento = ?' => $this->comprovantePagamento));
     $vwAnexarComprovantes = new vwAnexarComprovantes();
     $vwAnexarComprovantes->excluirArquivo($this->comprovantePagamento);
     $tbComprovantePagamento = new ComprovantePagamento();
     $comprovantePagamentoRow = $tbComprovantePagamento->fetchRow(array('idComprovantePagamento = ?' => $this->comprovantePagamento));
     if ($comprovantePagamentoRow && $comprovantePagamentoRow->idFornecedorExterior) {
         $idfornecedorInvoice = $comprovantePagamentoRow->idFornecedorExterior;
     }
     $comprovantePagamentoRow->delete();
     if (isset($idfornecedorInvoice)) {
         $fornecedorInvoiceTable = new FornecedorInvoice();
         $fornecedorInvoiceTable->getAdapter()->getProfiler()->setEnabled(true);
         $fornecedorInvoiceTable->delete(array('idFornecedorExterior = ?' => $idfornecedorInvoice));
     }
 }
 public function comprovantesRecusadosAction()
 {
     $this->verificarPermissaoAcesso(false, true, false);
     $this->dadosProjeto();
     # comprovantes recusados
     $comprovantePagamentoModel = new ComprovantePagamento();
     $this->view->comprovantesDePagamento = $comprovantePagamentoModel->pesquisarComprovanteRecusado($this->getRequest()->getParam('idpronac'));
     $this->view->idpronac = $this->getRequest()->getParam('idpronac');
     $this->view->idusuario = Zend_Auth::getInstance()->getIdentity()->IdUsuario;
 }