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/gestion-formularios.bdfschool/app/Http/Controllers/LoadExcelController.php
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Imports\UploadParentImport;
use App\Imports\UploadStudentImport;
use App\Models\Areas;
use App\Models\Parents;
use App\Models\Students;
use Exception;
use Illuminate\Http\Request;

class LoadExcelController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth.users')->except('logout');
    }

    public function importStudents()
    {
        $sidenav = 'areas';
        $sidenav_item = 'areas_new';
        $title = 'Nueva Área';
        $title_form = 'Formulario de Registro de Área';
        return view(
            'admin.students.import_excel',
            compact(
                'title',
                'sidenav',
                'sidenav_item',
                'title_form'
            )
        );
    }
    // Este método no se está utilizando actualmente
    public function processStudents(Request $request)
    {
        $request->validate([
            'excel_file' => 'required|mimes:xlsx,xls,csv',
            'load_type' => 'required',
        ]);

        try {
            set_time_limit(-1);


            if ($request->load_type == "complete") {
                $updateData = [
                    'deleted' => $request->load_type == "complete" ? 1 : 0,
                    'status'       => 0,
                    'annual_load'       => 0,
                    'annual_load_at'    => now(),
                ];
                Students::where('deleted', '!=', 1)->whereNull('request_id')->update($updateData);
            }

            $file = $request->file('excel_file');

            $import = new UploadStudentImport();
            \Maatwebsite\Excel\Facades\Excel::import($import, $file);

            if ($import->errorMessage) {
                return redirect()->back()->with([
                    'danger_message' => $import->errorMessage,
                    'danger_message_title' => 'ERROR EN LA CARGA'
                ]);
            }

            return redirect()->back()->with([
                'success_message' => $import->successMessage,
                'success_message_title' => 'CARGA DE ESTUDIANTES'
            ]);
        } catch (\Exception $e) {
            return redirect()->back()->with([
                'danger_message' => 'Ha ocurrido un error: ' . $e->getMessage(),
                'danger_message_title' => 'ERROR INTERNO'
            ]);
        }
    }

    public function importParents()
    {
        $sidenav = 'areas';
        $sidenav_item = 'areas_new';
        $title = 'Nueva Área';
        $title_form = 'Formulario de Registro de Área';
        return view(
            'admin.parents.import_excel',
            compact(
                'title',
                'sidenav',
                'sidenav_item',
                'title_form'
            )
        );
    }
    // Este método no se está utilizando actualmente
    public function processParents(Request $request)
    {
        $request->validate([
            'excel_file' => 'required|mimes:xlsx,xls,csv',
            'load_type' => 'required',
        ]);

        try {
            set_time_limit(-1);


            if ($request->load_type == "complete") {
                $updateData = [
                    'deleted' => $request->load_type == "complete" ? 1 : 0,
                    'status'       => 0,
                    'annual_load'       => 0,
                    'annual_load_at'    => now(),
                ];
                Parents::where('deleted', '!=', 1)->update($updateData);
            }

            $file = $request->file('excel_file');

            $import = new UploadParentImport();
            \Maatwebsite\Excel\Facades\Excel::import($import, $file);

            if ($import->errorMessage) {
                return redirect()->back()->with([
                    'danger_message' => $import->errorMessage,
                    'danger_message_title' => 'ERROR EN LA CARGA'
                ]);
            }

            return redirect()->back()->with([
                'success_message' => $import->successMessage,
                'success_message_title' => 'CARGA DE APODERADOS'
            ]);
        } catch (\Exception $e) {
            return redirect()->back()->with([
                'danger_message' => 'Ha ocurrido un error: ' . $e->getMessage(),
                'danger_message_title' => 'ERROR INTERNO'
            ]);
        }
    }
}