HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux Bradford-Sitios 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/formularioinscripcion.bradford/application/controllers/RefundController.php
<?php
class RefundController extends CI_Controller
{
	function  __construct()
	{
		parent::__construct();
		define('LAYOUT', 'layout');
	}

	function index()
	{
		$this->load->view('shared/' . LAYOUT, [
			'bancos' => get_table('bancos', 'id, nombre', array('nombre' => 'asc')),
			'parentescos' => get_table('parentescos', 'id, nombre', array('id' => 'asc')),
			'ok_email' => $this->session->flashdata('ok_email'),
			'main_content' =>  'admin/index_view'
		]);
	}


	function get_ruts($rut_apoderado)
	{
		$rut_apoderado = str_replace(['.', '-'], '', $rut_apoderado);
		$apoderado = get_row_by_where('apoderados_alumnos', ['rut_apoderado' => $rut_apoderado]);
		if ($apoderado->medio_pago == 'PAT' || $apoderado->medio_pago == 'PAC') {
			$hijos = $this->db->query("SELECT * FROM apoderados_alumnos WHERE rut_apoderado = '$rut_apoderado' AND solicita_devolucion < 2")->result();
		} else {
			$hijos = get_result_by_where('apoderados_alumnos', ['rut_apoderado' => $rut_apoderado, 'solicita_devolucion' => 0]);
		}
		$response = [];
		
		$response['error'] = '';
		if (count($hijos) > 0) {
			foreach ($hijos as $key => $value) {
				$response['alumnos'] .=  '<input name="rut_alumnos[]" id="rut_alumno' . $value->id . '" value="' . $value->id . '" type="checkbox" placeholder="" class="rut_alumnos">
						' . format_rut($value->rut_alumno) . " - $value->nombre_alumno<br/>";
			}
			$response['alumnos'] .= '<br/><span class="text-muted">(*) Seleccione el/los rut de los alumnos para gestionar la solicitud</span>';
		} else {
			$response['error'] .= 'Ya se ha realizado un proceso previamente para este Rut';
		}

		$response['validate'] = !empty($apoderado) ? true : false;
		$response['create'] = !empty($hijos) ? false : true;
		$response['alumnos'] .= '<br/>';
		$response['apoderado'] .= $apoderado->nombre_apoderado;
		$response['medio_pago'] .= $apoderado->medio_pago;
		echo json_encode($response);
	}

	function register()
	{
		$post = $this->input->post();
		if (!empty($post)) {
			$post['rut'] = str_replace('.', '', $post['rut']);
			$rut_apoderado = str_replace('-', '', $post['rut']);
			$post['rut_cta'] = str_replace('.', '', $post['rut_cta']);
			$parentesco = get_row_by_where('parentescos', array('id' => $post['parentesco']));
			$banco = get_row_by_where('bancos', array('id' => $post['banco']));
			$post['banco_id'] = $banco->id;
			$post['parentesco_id'] = $parentesco->id;
			$post['ip'] = $_SERVER['REMOTE_ADDR'];

			$rut_alumnos = $post['rut_alumnos'];
			unset($post['parentesco'], $post['banco'], $post['rut_alumnos']);

			$apoderado = get_row_by_where('apoderados_alumnos', ['rut_apoderado' => $rut_apoderado]);
			if ($apoderado->medio_pago == 'PAT' || $apoderado->medio_pago == 'PAC') {
				$hijos = $this->db->query("SELECT * FROM apoderados_alumnos WHERE rut_apoderado = '$rut_apoderado' AND solicita_devolucion < 2")->result();
			} else {
				$hijos = get_result_by_where('apoderados_alumnos', ['rut_apoderado' => $rut_apoderado, 'solicita_devolucion' => 0]);
			}

			foreach ($hijos as $key => $hijo) {
				$post['rut_alumno_id'] = $hijo->id;
				$contacto_id = insert('contactos', $post);
				update_row_by_where('apoderados_alumnos', ['solicita_devolucion' => 2], ['id' => $hijo->id]);
				$rut_alumnos[$key] = get_row_by_where('apoderados_alumnos', ['id' => $hijo->id]);
			}

			/*
				if (!empty($_FILES['files'])) {
					$ruta_archivo = ROOT_PATH_BASE . "/contact_files/$contacto_id";
					$ruta_remota = base_url() . "contact_files/$contacto_id";
					if (is_dir($ruta_archivo) === FALSE) {
						mkdir($ruta_archivo, 0755, TRUE);
					}
					foreach ($_FILES['files']['tmp_name'] as $key => $value) {
						$files_attach[$key]['file_name'] = $nombre_archivo = clean_str_url($_FILES['files']['name'][$key]);
						$files_attach[$key]['local_path'] = "$ruta_archivo/$nombre_archivo";
						$files_attach[$key]['remote_path'] = "$ruta_remota/$nombre_archivo";
						if (copy($value, "$ruta_archivo/$nombre_archivo")) {
							//echo "archivo cargado";
						} else {
							//echo "Problemas al carga archivo";
						}
					}
				}
				update_row_by_where('contactos', array('archivos' => str_replace("\\", '', json_encode($files_attach))), array('id' => $contacto_id));
			*/

			$saludo = "<br/><p>Estimado Equipo de Administración</p>
			<p>Hemos recibido una nueva solicitud de renuncia al mecanismo de financiamiento para la Gira UK a través de nuestro formulario web. A continuación, se detallan los datos:</p>";

			$datos = "<p><b>N° operación: </b> $contacto_id</p>
			<p><b>Fecha operación : </b>" . (date('d-m-Y H:i:s')) . "</p>
			<p>
				<li><b>Datos del Apoderado/a:</b>
					<ul><b>Nombre apoderado : </b> $post[nombre]</ul>
					<ul><b>Rut apoderado: </b> $post[rut]</ul>
					<ul><b>Email : </b> $post[email]</ul>
					<ul><b>Teléfono : </b> $post[telefono]</ul>
					<ul><b>Relación con el Estudiante : </b>$parentesco->nombre</ul>
				</li>
			</p>
			";

			if (!empty($rut_alumnos)) {
				$datos .= "<p><li><b>Datos del Alumno/s a Solicitar Devolución</b>";
				foreach ($rut_alumnos as $key => $value) {
					$datos .= "<ul>RUT: " . format_rut($value->rut_alumno) . "</ul>";
				}
				$datos .= "</li></p>";
			}

			if (!empty($post['numero_cuenta'])) {
				$datos .=  "
				<p>
					<li><b>Datos Bancarios</b>
						<ul><b>Banco : </b> $banco->nombre</ul>
						<ul><b>Tipo de cuenta : </b> $post[tipo_cuenta]</ul>
						<ul><b>Número de cuenta : </b> $post[numero_cuenta]</ul>
						<ul><b>Rut cuenta banco : </b> $post[rut_cta]</ul>
					</li>
				</p>";
			}

			$data['main_content'] = $saludo . $datos . "<br/>Atentamente.
			<br/>
			<p style=\"text-align:center\">Sistema de inscripción financiamiento Gira UK</p>
			<p style=\"text-align:center\">Bradford School</p>";
			$html = $this->load->view('email/contact_view', $data, TRUE);
			$data_mail['mensaje'] = $html;

			$dataEmail = [
				'para' => $_ENV['DESTINATARIO_EMAIL'],
				'remitente' => $_ENV['REMITENTE_BASE'],
				'usuario' => $_ENV['USUARIO_MAIL_BASE'],
				'bcc_remitente' => $_ENV['BCC_REMITENTE'],
				'asunto' => 'Notificación de Nueva Solicitud de Renuncia al Mecanismo de Financiamiento Gira UK',
				'mensaje' => $html
			];
			$result = enviarCorreoMailBrevo($dataEmail);


			//Correo Apoderado
			$dataEmail['asunto'] = 'Confirmación de Recepción: Renuncia al Mecanismo de Financiamiento Gira UK';
			$dataEmail['para'] = $post['email'];
			unset($dataEmail['bcc_remitente']);

			$saludo = "<br/><p>Estimado/a $post[nombre]</p>
			<p>Junto con saludar, le informamos que hemos recibido exitosamente su solicitud de renuncia al mecanismo de financiamiento para la Gira UK. A continuación, le proporcionamos los detalles de la operación:</p>";
			$data['main_content'] = $saludo . $datos . "
			<p>Este correo es la confirmación de su solicitud de renuncia al mecanismo de financiamiento para la Gira UK. </p>
			<p>En caso de tener alguna consulta, favor de contactar a matricula2024@bradford.cl</p>
			<br/>Reciba cordiales saludos, <br/><br/>
			<p style=\"text-align:center\">Equipo de Matrícula </p>
			<p style=\"text-align:center\">Bradford School</p>";
			$html = $this->load->view('email/contact_view', $data, TRUE);

			$dataEmail['mensaje'] = $html;
			$result = enviarCorreoMailBrevo($dataEmail); // Correo Apoderado

			$this->session->set_flashdata('ok_email', 'Su formulario ha sido registrado con éxito. Le enviaremos un correo electrónico con los detalles de su solicitud.');
			redirect(base_url());
		} else {
			redirect(base_url());
		}
	}
}