Loading app/Exports/ContactosExport.php +43 −4 Original line number Diff line number Diff line Loading @@ -58,11 +58,11 @@ public function collection() }); } $contactos = $query->with(['profesion', 'cargo', 'caracteristicas'])->get(); $contactos = $query->with(['profesion', 'cargo', 'caracteristicas', 'telefonos', 'pareja'])->get(); return $contactos->map(function ($contacto) { $defaultData = [ 'Profesión' => $contacto->profesion->nombre ?? 'N/A', 'Profesión' => $contacto->profesion->abreviatura ?? 'N/A', 'Nombre' => $contacto->nombre, 'Apellido Paterno' => $contacto->ap_paterno, 'Apellido Materno' => $contacto->ap_materno ?? '', Loading @@ -71,7 +71,30 @@ public function collection() $extraData = []; foreach ($this->extraFields as $field) { $extraData[$field] = $contacto->{$field} ?? 'N/A'; if ($field === 'domicilio') { // Agregar detalles del domicilio $extraData['Domicilio Oficial'] = $contacto->domicilio_oficial ?? 'N/A'; $extraData['Código Postal'] = $contacto->codigo_postal ?? 'N/A'; $extraData['Localidad Oficial'] = $contacto->localidad_oficial ?? 'N/A'; $extraData['Municipio Oficial'] = $contacto->municipio_oficial ?? 'N/A'; $extraData['Estado'] = $contacto->estado ?? 'N/A'; $extraData['País'] = $contacto->pais ?? 'N/A'; } elseif ($field === 'cumpleanos') { $extraData['Cumpleaños'] = $contacto->mes_cump && $contacto->dia_cump ? $contacto->mes_cump . '/' . $contacto->dia_cump : 'N/A'; }else if($field === 'telefonos'){ $extraData['Número de teléfono'] = $contacto->telefonos->pluck('numero')->join(', ') ?? 'N/A'; $extraData['Tipo'] = $contacto->telefonos->pluck('tipo')->join(', ') ?? 'N/A'; $extraData['Estatus'] = $contacto->telefonos->pluck('estatus')->join(', ') ?? 'N/A'; $extraData['Extensión'] = $contacto->telefonos->pluck('ext')->join(', ') ?? 'N/A'; $extraData['ID Radio'] = $contacto->telefonos->pluck('id_radio')->join(', ') ?? 'N/A'; $extraData['Observaciones'] = $contacto->telefonos->pluck('observaciones')->join(', ') ?? 'N/A'; }else if($field === 'conyuge'){ $extraData['Cónyuge'] = $contacto->pareja->nombre && $contacto->pareja->ap_paterno && $contacto->pareja->ap_materno ? $contacto->pareja->nombre . ' ' . $contacto->ap_paterno . ' ' . $contacto->pareja->ap_materno : 'N/A'; } } return array_merge($defaultData, $extraData); Loading @@ -81,6 +104,22 @@ public function collection() public function headings(): array { $defaultHeadings = ['Profesión', 'Nombre', 'Apellido Paterno', 'Apellido Materno', 'Cargo']; return array_merge($defaultHeadings, $this->extraFields); $extraHeadings = ''; foreach ($this->extraFields as $field) { if ($field === 'domicilio') { $extraHeadings = ['Domicilio', 'Código Postal', 'Localidad', 'Municipio', 'Estado', 'Pais']; $defaultHeadings = array_merge($defaultHeadings, $extraHeadings); } elseif ($field === 'cumpleanos') { $extraHeadings = ['Cumpleaños']; $defaultHeadings = array_merge($defaultHeadings, $extraHeadings); } elseif ($field === 'telefonos') { $extraHeadings = ['Teléfonos', 'Tipo', 'Estatus', 'Extensión', 'ID Radio', 'Observaciones']; $defaultHeadings = array_merge($defaultHeadings, $extraHeadings); } elseif ($field === 'conyuge') { $extraHeadings[] = 'Cónyuge'; } } return $defaultHeadings; } } Loading
app/Exports/ContactosExport.php +43 −4 Original line number Diff line number Diff line Loading @@ -58,11 +58,11 @@ public function collection() }); } $contactos = $query->with(['profesion', 'cargo', 'caracteristicas'])->get(); $contactos = $query->with(['profesion', 'cargo', 'caracteristicas', 'telefonos', 'pareja'])->get(); return $contactos->map(function ($contacto) { $defaultData = [ 'Profesión' => $contacto->profesion->nombre ?? 'N/A', 'Profesión' => $contacto->profesion->abreviatura ?? 'N/A', 'Nombre' => $contacto->nombre, 'Apellido Paterno' => $contacto->ap_paterno, 'Apellido Materno' => $contacto->ap_materno ?? '', Loading @@ -71,7 +71,30 @@ public function collection() $extraData = []; foreach ($this->extraFields as $field) { $extraData[$field] = $contacto->{$field} ?? 'N/A'; if ($field === 'domicilio') { // Agregar detalles del domicilio $extraData['Domicilio Oficial'] = $contacto->domicilio_oficial ?? 'N/A'; $extraData['Código Postal'] = $contacto->codigo_postal ?? 'N/A'; $extraData['Localidad Oficial'] = $contacto->localidad_oficial ?? 'N/A'; $extraData['Municipio Oficial'] = $contacto->municipio_oficial ?? 'N/A'; $extraData['Estado'] = $contacto->estado ?? 'N/A'; $extraData['País'] = $contacto->pais ?? 'N/A'; } elseif ($field === 'cumpleanos') { $extraData['Cumpleaños'] = $contacto->mes_cump && $contacto->dia_cump ? $contacto->mes_cump . '/' . $contacto->dia_cump : 'N/A'; }else if($field === 'telefonos'){ $extraData['Número de teléfono'] = $contacto->telefonos->pluck('numero')->join(', ') ?? 'N/A'; $extraData['Tipo'] = $contacto->telefonos->pluck('tipo')->join(', ') ?? 'N/A'; $extraData['Estatus'] = $contacto->telefonos->pluck('estatus')->join(', ') ?? 'N/A'; $extraData['Extensión'] = $contacto->telefonos->pluck('ext')->join(', ') ?? 'N/A'; $extraData['ID Radio'] = $contacto->telefonos->pluck('id_radio')->join(', ') ?? 'N/A'; $extraData['Observaciones'] = $contacto->telefonos->pluck('observaciones')->join(', ') ?? 'N/A'; }else if($field === 'conyuge'){ $extraData['Cónyuge'] = $contacto->pareja->nombre && $contacto->pareja->ap_paterno && $contacto->pareja->ap_materno ? $contacto->pareja->nombre . ' ' . $contacto->ap_paterno . ' ' . $contacto->pareja->ap_materno : 'N/A'; } } return array_merge($defaultData, $extraData); Loading @@ -81,6 +104,22 @@ public function collection() public function headings(): array { $defaultHeadings = ['Profesión', 'Nombre', 'Apellido Paterno', 'Apellido Materno', 'Cargo']; return array_merge($defaultHeadings, $this->extraFields); $extraHeadings = ''; foreach ($this->extraFields as $field) { if ($field === 'domicilio') { $extraHeadings = ['Domicilio', 'Código Postal', 'Localidad', 'Municipio', 'Estado', 'Pais']; $defaultHeadings = array_merge($defaultHeadings, $extraHeadings); } elseif ($field === 'cumpleanos') { $extraHeadings = ['Cumpleaños']; $defaultHeadings = array_merge($defaultHeadings, $extraHeadings); } elseif ($field === 'telefonos') { $extraHeadings = ['Teléfonos', 'Tipo', 'Estatus', 'Extensión', 'ID Radio', 'Observaciones']; $defaultHeadings = array_merge($defaultHeadings, $extraHeadings); } elseif ($field === 'conyuge') { $extraHeadings[] = 'Cónyuge'; } } return $defaultHeadings; } }