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;
}
}
}