D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
crsys
/
adm
/
app
/
gre
/
Controllers
/
Filename :
ContratoEnviar.php
back
Copy
<?php namespace App\gre\Controllers; if (!defined('URL')) { header("Location: /"); exit(); } class ContratoEnviar { private $Dados; private $Retorno; public function enviaContrato() { $this->Retorno = filter_input_array(INPUT_POST, FILTER_DEFAULT); $this->Dados = filter_input_array(INPUT_GET, FILTER_DEFAULT); $uploadDir = $_SERVER['DOCUMENT_ROOT'].'/crsys/adm/Contratos/'.$_SESSION['id_user'].'/'; if (!is_dir($uploadDir)) { mkdir($uploadDir, 0777, true); } // Garante que 'anexos' seja sempre array if (!isset($this->Retorno['anexos']) || !is_array($this->Retorno['anexos'])) { $this->Retorno['anexos'] = []; } // Processa uploads múltiplos corretamente if (isset($_FILES['arquivos_local']) && !empty($_FILES['arquivos_local']['name'][0])) { $arquivos = $_FILES['arquivos_local']; foreach ($arquivos['name'] as $key => $nomeArquivo) { // Ignora arquivos sem nome if (empty($nomeArquivo)) { continue; } // Verifica erro do upload if ($arquivos['error'][$key] === UPLOAD_ERR_OK) { $tmpName = $arquivos['tmp_name'][$key]; $nome = basename($nomeArquivo); $destino = $uploadDir . $nome; if (move_uploaded_file($tmpName, $destino)) { $this->Retorno['anexos'][] = $nome; } else { echo "Erro ao gravar arquivo: $nome"; exit; } } elseif ($arquivos['error'][$key] !== UPLOAD_ERR_NO_FILE) { echo "Erro no upload: " . $arquivos['error'][$key]; exit; } } } // Debug: exibe GET + POST + anexos // var_dump($this->Retorno); // **Adiciona todos os arquivos existentes em 'arquivos_existentes' no array 'anexos'** if (isset($this->Retorno['arquivos_existentes']) && is_array($this->Retorno['arquivos_existentes'])) { foreach ($this->Retorno['arquivos_existentes'] as $arquivoExistente) { if (!in_array($arquivoExistente, $this->Retorno['anexos'])) { $this->Retorno['anexos'][] = $arquivoExistente; } } unset($this->Retorno['arquivos_existentes']); } if (!isset($this->Retorno['enviar_email']) ) { // Botões $botao = [ 'cad_contr_enviar' => ['menu_controller' => 'cadastrar-contrato-enviar', 'menu_metodo' => 'cad-contr-enviar'], 'vis_contr_enviar' => ['menu_controller' => 'ver-contrato-enviar-modal', 'menu_metodo' => 'ver-contr-enviar'], 'edit_contr_enviar' => ['menu_controller' => 'contrato-enviar-editar', 'menu_metodo' => 'edit-contr-enviar'], ]; $listarBotao = new \App\adms\Models\AdmsBotao(); $this->Dados['botao'] = $listarBotao->valBotao($botao); $this->listarContratoEnviarPriv(); }else{ unset($this->Retorno['enviar_email']); $enviarEmail = new \App\gre\Models\Contrato\ModEnviaEmailContrato(); $enviarEmail->enviarEmail($this->Retorno); // Mantido para debug if ($enviarEmail->getResultado()) { $atuEmail = new \App\gre\Models\Contrato\ModAtualizaEnvioEmailContrato(); $atuEmail->atuEmail($this->Retorno); $UrlDestino = URLADM . 'pedido/listar'; header("Location: $UrlDestino"); } } } private function listarContratoEnviarPriv() { $listarSelect = new \App\gre\Models\Contrato\ModListarContratoEnviar(); $this->Dados['select'] = $listarSelect->listarCadastrar(); $listarDados = new \App\gre\Models\Contrato\ModListarContratoEnviar($this->Dados); $this->Dados['list_contrato'] = $listarDados->listarContrato(); $listarMenu = new \App\adms\Models\AdmsMenu(); $this->Dados['menu'] = $listarMenu->itemMenu(); $carregarView = new \Core\ConfigView("gre/Views/Contrato/VieListarContratoEnviar", $this->Dados); $carregarView->renderizar(); } }