D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
novonote
/
adm
/
app
/
gre
/
Controllers
/
Filename :
ContratoImprimir_1.php
back
Copy
<?php namespace App\gre\Controllers; class ContratoImprimir { private $Dados; private $DadosImpr; public function impContrato() { $this->DadosImpr = filter_input_array(INPUT_GET, FILTER_DEFAULT); if (isset($_SESSION['pdf_gerado']) && isset($_SESSION['docx_gerado'])) { $this->Dados['pdf_gerado'] = $_SESSION['pdf_gerado']; $this->Dados['docx_gerado'] = $_SESSION['docx_gerado']; unset($_SESSION['pdf_gerado'], $_SESSION['docx_gerado']); // Redireciona para o método que gera e baixa o ZIP $this->baixarZipContrato(); } if (isset($this->DadosImpr['numero_contrato'])) { $_SESSION['numero_contrato'] = $this->DadosImpr['numero_contrato']; } unset($this->DadosImpr['url']); if (!empty($this->DadosImpr)) { $lerCont = new \App\gre\Models\Contrato\ModImprimirContrato(); $this->Dados['form'] = $lerCont->lerCont($this->DadosImpr); $lerItens = new \App\gre\Models\Contrato\ModImprimirContrato(); $this->Dados['dadosItens'] = $lerItens->lerItens($this->DadosImpr); $carregarView = new \App\gre\core\ConfigViewImpr("gre/Views/Contrato/VieImpContrato", $this->Dados); $carregarView->renderizarGre(); }else{ } } public function downContratoPdf() { $arquivoPDF = $this->Dados['pdf_gerado']; if (!file_exists($arquivoPDF)) { http_response_code(404); echo "Arquivo PDF não encontrado."; exit; } while (ob_get_level()) ob_end_clean(); if (function_exists('ini_set')) ini_set('zlib.output_compression', 'Off'); header('Content-Type: application/pdf'); header('Content-Disposition: attachment; filename="' . basename($arquivoPDF) . '"'); header('Content-Length: ' . filesize($arquivoPDF)); header('Pragma: public'); header('Cache-Control: must-revalidate'); header('Expires: 0'); flush(); readfile($arquivoPDF); exit; } public function downContratoDocx() { $arquivoDOCX = $this->Dados['docx_gerado']; if (!file_exists($arquivoDOCX)) { http_response_code(404); echo "Arquivo DOCX não encontrado."; exit; } while (ob_get_level()) ob_end_clean(); if (function_exists('ini_set')) ini_set('zlib.output_compression', 'Off'); header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document'); header('Content-Disposition: attachment; filename="' . basename($arquivoDOCX) . '"'); header('Content-Length: ' . filesize($arquivoDOCX)); header('Pragma: public'); header('Cache-Control: must-revalidate'); header('Expires: 0'); flush(); readfile($arquivoDOCX); exit; } public function baixarZipContrato() { if (!isset($this->Dados['pdf_gerado']) || !isset($this->Dados['docx_gerado'])) { http_response_code(400); echo "Arquivos não encontrados na sessão."; exit; } $arquivoPDF =$this->Dados['pdf_gerado']; $arquivoDOCX = $this->Dados['docx_gerado']; if (!file_exists($arquivoPDF) || !file_exists($arquivoDOCX)) { http_response_code(404); echo "Um ou mais arquivos não existem."; exit; } date_default_timezone_set ("America/Sao_Paulo"); $timestamp = date('Y_m_d_H_i_s'); $zipPath = __DIR__ . "/../../../ContratoImpresso/impContrato/contrato_{$_SESSION['numero_contrato']}_Data_{$timestamp}.zip"; $zip = new \ZipArchive(); if ($zip->open($zipPath, \ZipArchive::CREATE | \ZipArchive::OVERWRITE) !== true) { http_response_code(500); echo "Não foi possível criar o arquivo ZIP."; exit; } $zip->addFile($arquivoPDF, basename($arquivoPDF)); $zip->addFile($arquivoDOCX, basename($arquivoDOCX)); $zip->close(); while (ob_get_level()) ob_end_clean(); if (function_exists('ini_set')) ini_set('zlib.output_compression', 'Off'); header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename="' . basename($zipPath) . '"'); header('Content-Length: ' . filesize($zipPath)); header('Pragma: public'); header('Cache-Control: must-revalidate'); header('Expires: 0'); flush(); readfile($zipPath); $_SESSION['msg'] = "<div class='alert alert-success'>Contrato Baixado!</div>"; $UrlDestino = URLADM . 'contrato/listar/'; header("Location: $UrlDestino"); exit; } }