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/dtw.bradford/app/Imports/ColegiumFamilyDataImport.php
<?php

namespace App\Imports;

use Exception;
use Illuminate\Support\Facades\Log;

class ColegiumFamilyDataImport extends AbstractChunksImport
{
     protected function getExpectedHeaders(): array
    {
        return [
            'alumnosnombres',
            'alumnosapellido_paterno',
            'alumnosapellido_materno',
            'alumnosrut',
            'alumnoscurso',
            'alumnossexo',
            'alumnosemail',
            'padrenombres',
            'padreapellido_paterno',
            'padreapellido_materno',
            'padrerut',
            'padrecelular',
            'padreemail',
            'madrenombres',
            'madreapellido_paterno',
            'madreapellido_materno',
            'madrerut',
            'madrecelular',
            'madreemail',
            'apoderado_de_cuentanombres',
            'apoderado_de_cuentaapellido_paterno',
            'apoderado_de_cuentaapellido_materno',
            'apoderado_de_cuentarut',
            'apoderado_de_cuentatelefonodomicilio',
            'apoderado_de_cuentacelular',
            'apoderado_de_cuentaemail',
            'apoderado_academiconombres',
            'apoderado_academicoapellido_paterno',
            'apoderado_academicoapellido_materno',
            'apoderado_academicorut',
            'apoderado_academicotelefonodomicilio',
            'apoderado_academicocelular',
            'apoderado_academicoemail'
        ];
    }

    protected function getTableName(): string
    {
        return 'colegium_family_data';
    }

    protected function getSheetName()
    {
        return 0;
    }

    protected function normalizeRow(array $row, int $numRow): ?array
    {
        $validation_errors = 0;
        $validation_messages = '';

        Log::info("Procesando fila: $numRow");

        try {
            // Validación de data
            if (!empty($row['alumnosnombres'])) {
                $alumnosnombres = $row['alumnosnombres'];
            } else {
                $alumnosnombres = null;
            }

            if (!empty($row['alumnosapellido_paterno'])) {
                $alumnosapellido_paterno = $row['alumnosapellido_paterno'];
            } else {
                $alumnosapellido_paterno = null;
            }

            if (!empty($row['alumnosapellido_materno'])) {
                $alumnosapellido_materno = $row['alumnosapellido_materno'];
            } else {
                $alumnosapellido_materno = null;
            }

            if (!empty($row['alumnosrut'])) {
                if (!validateRut(trim($row['alumnosrut']))) {
                    $validation_errors++;
                    $validation_messages .= ($validation_errors) . ': alumnosrut inválido. ';
                } else {
                    $alumnosrut = formateaRut($row['alumnosrut']);
                }
            } else {
                $alumnosrut = null;
            }

            if (!empty($row['alumnoscurso'])) {
                $alumnoscurso = $row['alumnoscurso'];
            } else {
                $alumnoscurso = null;
            }

            if (!empty($row['alumnossexo'])) {
                $alumnossexo = $row['alumnossexo'];
            } else {
                $alumnossexo = null;
            }

            if (!empty($row['alumnosemail'])) {
                if (validateEmail(trim($row['alumnosemail']))) {
                    $validation_errors++;
                    $validation_messages .= ($validation_errors) . ': alumnosemail inválido. ';
                } else {
                    $alumnosemail = $row['alumnosemail'];
                }
            } else {
                $alumnosemail = null;
            }

            if (!empty($row['padrenombres'])) {
                $padrenombres = $row['padrenombres'];
            } else {
                $padrenombres = null;
            }

            if (!empty($row['padreapellido_paterno'])) {
                $padreapellido_paterno = $row['padreapellido_paterno'];
            } else {
                $padreapellido_paterno = null;
            }

            if (!empty($row['padreapellido_materno'])) {
                $padreapellido_materno = $row['padreapellido_materno'];
            } else {
                $padreapellido_materno = null;
            }

            if (!empty($row['padrerut'])) {
                if (!validateRut(trim($row['padrerut']))) {
                    $validation_errors++;
                    $validation_messages .= ($validation_errors) . ': padrerut inválido. ';
                } else {
                    $padrerut = formateaRut($row['padrerut']);
                }
            } else {
                $padrerut = null;
            }

            if (!empty($row['padrecelular'])) {
                $padrecelular = $row['padrecelular'];
            } else {
                $padrecelular = null;
            }

            if (!empty($row['padreemail'])) {
                if (validateEmail(trim($row['padreemail']))) {
                    $validation_errors++;
                    $validation_messages .= ($validation_errors) . ': padreemail inválido. ';
                } else {
                    $padreemail = $row['padreemail'];
                }
            } else {
                $padreemail = null;
            }

            if (!empty($row['madrenombres'])) {
                $madrenombres = $row['madrenombres'];
            } else {
                $madrenombres = null;
            }

            if (!empty($row['madreapellido_paterno'])) {
                $madreapellido_paterno = $row['madreapellido_paterno'];
            } else {
                $madreapellido_paterno = null;
            }

            if (!empty($row['madreapellido_materno'])) {
                $madreapellido_materno = $row['madreapellido_materno'];
            } else {
                $madreapellido_materno = null;
            }

            if (!empty($row['madrerut'])) {
                if (!validateRut(trim($row['madrerut']))) {
                    $validation_errors++;
                    $validation_messages .= ($validation_errors) . ': madrerut inválido. ';
                } else {
                    $madrerut = formateaRut($row['madrerut']);
                }
            } else {
                $madrerut = null;
            }

            if (!empty($row['madrecelular'])) {
                $madrecelular = $row['madrecelular'];
            } else {
                $madrecelular = null;
            }

            if (!empty($row['madreemail'])) {
                if (validateEmail(trim($row['madreemail']))) {
                    $validation_errors++;
                    $validation_messages .= ($validation_errors) . ': madreemail inválido. ';
                } else {
                    $madreemail = $row['madreemail'];
                }
            } else {
                $madreemail = null;
            }

            if (!empty($row['apoderado_de_cuentanombres'])) {
                $apoderado_de_cuentanombres = $row['apoderado_de_cuentanombres'];
            } else {
                $apoderado_de_cuentanombres = null;
            }

            if (!empty($row['apoderado_de_cuentaapellido_paterno'])) {
                $apoderado_de_cuentaapellido_paterno = $row['apoderado_de_cuentaapellido_paterno'];
            } else {
                $apoderado_de_cuentaapellido_paterno = null;
            }

            if (!empty($row['apoderado_de_cuentaapellido_materno'])) {
                $apoderado_de_cuentaapellido_materno = $row['apoderado_de_cuentaapellido_materno'];
            } else {
                $apoderado_de_cuentaapellido_materno = null;
            }

            if (!empty($row['apoderado_de_cuentarut'])) {
                if (!validateRut(trim($row['apoderado_de_cuentarut']))) {
                    $validation_errors++;
                    $validation_messages .= ($validation_errors) . ': apoderado_de_cuentarut inválido. ';
                } else {
                    $apoderado_de_cuentarut = formateaRut($row['apoderado_de_cuentarut']);
                }
            } else {
                $apoderado_de_cuentarut = null;
            }

            if (!empty($row['apoderado_de_cuentatelefonodomicilio'])) {
                $apoderado_de_cuentatelefonodomicilio = $row['apoderado_de_cuentatelefonodomicilio'];
            } else {
                $apoderado_de_cuentatelefonodomicilio = null;
            }

            if (!empty($row['apoderado_de_cuentacelular'])) {
                $apoderado_de_cuentacelular = $row['apoderado_de_cuentacelular'];
            } else {
                $apoderado_de_cuentacelular = null;
            }

            if (!empty($row['apoderado_de_cuentaemail'])) {
                if (validateEmail(trim($row['apoderado_de_cuentaemail']))) {
                    $validation_errors++;
                    $validation_messages .= ($validation_errors) . ': apoderado_de_cuentaemail inválido. ';
                } else {
                    $apoderado_de_cuentaemail = $row['apoderado_de_cuentaemail'];
                }
            } else {
                $apoderado_de_cuentaemail = null;
            }

            if (!empty($row['apoderado_academiconombres'])) {
                $apoderado_academiconombres = $row['apoderado_academiconombres'];
            } else {
                $apoderado_academiconombres = null;
            }

            if (!empty($row['apoderado_academicoapellido_paterno'])) {
                $apoderado_academicoapellido_paterno = $row['apoderado_academicoapellido_paterno'];
            } else {
                $apoderado_academicoapellido_paterno = null;
            }

            if (!empty($row['apoderado_academicoapellido_materno'])) {
                $apoderado_academicoapellido_materno = $row['apoderado_academicoapellido_materno'];
            } else {
                $apoderado_academicoapellido_materno = null;
            }

            if (!empty($row['apoderado_academicorut'])) {
                if (!validateRut(trim($row['apoderado_academicorut']))) {
                    $validation_errors++;
                    $validation_messages .= ($validation_errors) . ': apoderado_academicorut inválido. ';
                } else {
                    $apoderado_academicorut = formateaRut($row['apoderado_academicorut']);
                }
            } else {
                $apoderado_academicorut = null;
            }

            if (!empty($row['apoderado_academicotelefonodomicilio'])) {
                $apoderado_academicotelefonodomicilio = $row['apoderado_academicotelefonodomicilio'];
            } else {
                $apoderado_academicotelefonodomicilio = null;
            }

            if (!empty($row['apoderado_academicocelular'])) {
                $apoderado_academicocelular = $row['apoderado_academicocelular'];
            } else {
                $apoderado_academicocelular = null;
            }

            if (!empty($row['apoderado_academicoemail'])) {
                if (validateEmail(trim($row['apoderado_academicoemail']))) {
                    $validation_errors++;
                    $validation_messages .= ($validation_errors) . ': apoderado_academicoemail inválido. ';
                } else {
                    $apoderado_academicoemail = $row['apoderado_academicoemail'];
                }
            } else {
                $apoderado_academicoemail = null;
            }

            if ($validation_errors > 0) {
                $this->hasErrors = true;
                $this->error_data[] = [
                    'numero_de_linea' => $numRow,
                    'errores' => $validation_messages,
                    'fecha_de_carga' => date('d-m-Y H:i'),
                ];
                return null;
            }

            return [
                'student_names' => $alumnosnombres,
                'student_lastname1' => $alumnosapellido_paterno,
                'student_lastname2' => $alumnosapellido_materno,
                'student_rut' => $alumnosrut,
                'student_class' => $alumnoscurso,
                'student_gender' => $alumnossexo,
                'student_email' => $alumnosemail,
                'father_names' => $padrenombres,
                'father_lastname1' => $padreapellido_paterno,
                'father_lastname2' => $padreapellido_materno,
                'father_rut' => $padrerut,
                'father_phone' => $padrecelular,
                'father_email' => $padreemail,
                'mother_names' => $madrenombres,
                'mother_lastname1' => $madreapellido_paterno,
                'mother_lastname2' => $madreapellido_materno,
                'mother_rut' => $madrerut,
                'mother_phone' => $madrecelular,
                'mother_email' => $madreemail,
                'account_names' => $apoderado_de_cuentanombres,
                'account_lastname1' => $apoderado_de_cuentaapellido_paterno,
                'account_lastname2' => $apoderado_de_cuentaapellido_materno,
                'account_rut' => $apoderado_de_cuentarut,
                'account_home_phone' => $apoderado_de_cuentatelefonodomicilio,
                'account_cellphone' => $apoderado_de_cuentacelular,
                'account_email' => $apoderado_de_cuentaemail,
                'academic_names' => $apoderado_academiconombres,
                'academic_lastname1' => $apoderado_academicoapellido_paterno,
                'academic_lastname2' => $apoderado_academicoapellido_materno,
                'academic_rut' => $apoderado_academicorut,
                'academic_home_phone' => $apoderado_academicotelefonodomicilio,
                'academic_cellphone' => $apoderado_academicocelular,
                'academic_email' => $apoderado_academicoemail,
                'created_at' => ahoraServidor()
            ];
        } catch (\Throwable $e) {
            $this->error_data[] = [
                'numero_de_linea' => $numRow,
                'errores' => 'Excepción: ' . $e->getMessage(),
                'fecha_de_carga' => date('d-m-Y H:i'),
            ];
            return null;
        }
    }
}