Loading app/Exports/ContactosExport.php +60 −24 Original line number Diff line number Diff line Loading @@ -64,9 +64,7 @@ public function collection() public function headings(): array { $defaultHeadings = ['Profesión', 'Nombre', 'Apellido Paterno', 'Apellido Materno', 'Cargo', 'Descripción del cargo', 'Grupo', 'Subgrupo']; $extraHeadings = $this->getExtraHeadings(); return array_merge($defaultHeadings, $extraHeadings); return $this->getExtraHeadings(); } private function applyFilters($query) Loading Loading @@ -146,28 +144,42 @@ private function applyFilters($query) private function formatContactoData($contacto) { $defaultData = [ 'Profesión' => $contacto->profesion->abreviatura ?? 'N/A', 'Nombre' => $contacto->nombre, 'Apellido Paterno' => $contacto->ap_paterno, 'Apellido Materno' => $contacto->ap_materno ?? '', 'Cargo' => $contacto->cargo->nombre ?? 'N/A', 'Descripción del cargo' => $contacto->cargo_desc ?? 'N/A', 'Grupo' => $contacto->grupos->pluck('nombre')[0] ?? 'N/A', 'Subgrupo' => $contacto->subgrupos->pluck('nombre')[0] ?? 'N/A', ]; $extraData = []; $data = []; $fields = $this->extraFields; if (in_array('todos', $fields)) { $fields = ['domicilio', 'cumpleanos', 'telefonos', 'conyuge', 'email']; $fields = ['profesion', 'nombre', 'ap_paterno', 'ap_materno', 'cargo', 'cargo_desc', 'grupo', 'subgrupo', 'domicilio', 'cumpleanos', 'telefonos', 'conyuge', 'email']; } foreach ($fields as $field) { switch ($field) { case 'profesion': $data['Profesión'] = $contacto->profesion->abreviatura ?? 'N/A'; break; case 'nombre': $data['Nombre'] = $contacto->nombre ?? 'N/A'; break; case 'ap_paterno': $data['Apellido Paterno'] = $contacto->ap_paterno ?? 'N/A'; break; case 'ap_materno': $data['Apellido Materno'] = $contacto->ap_materno ?? 'N/A'; break; case 'cargo': $data['Cargo'] = $contacto->cargo->nombre ?? 'N/A'; break; case 'cargo_desc': $data['Descripción del cargo'] = $contacto->cargo_desc ?? 'N/A'; break; case 'grupo': $data['Grupo'] = $contacto->grupos->pluck('nombre')[0] ?? 'N/A'; break; case 'subgrupo': $data['Subgrupo'] = $contacto->subgrupos->pluck('nombre')[0] ?? 'N/A'; break; case 'domicilio': $extraData = array_merge($extraData, [ $data = array_merge($data, [ 'Domicilio Oficial' => $contacto->domicilio_oficial ?? 'N/A', 'Código Postal' => $contacto->codigo_postal ?? 'N/A', 'Localidad Oficial' => $contacto->localidad_oficial ?? 'N/A', Loading @@ -177,12 +189,12 @@ private function formatContactoData($contacto) ]); break; case 'cumpleanos': $extraData['Cumpleaños'] = $contacto->mes_cump && $contacto->dia_cump $data['Cumpleaños'] = $contacto->mes_cump && $contacto->dia_cump ? $contacto->mes_cump . '/' . $contacto->dia_cump : 'N/A'; break; case 'telefonos': $extraData = array_merge($extraData, [ $data = array_merge($data, [ 'Número de teléfono' => $contacto->telefonos->pluck('numero')->join(', ') ?? 'N/A', 'Tipo' => $contacto->telefonos->pluck('tipo')->join(', ') ?? 'N/A', 'Estatus' => $contacto->telefonos->pluck('estatus')->join(', ') ?? 'N/A', Loading @@ -191,12 +203,12 @@ private function formatContactoData($contacto) ]); break; case 'conyuge': $extraData['Cónyuge'] = $contacto->pareja $data['Cónyuge'] = $contacto->pareja ? $contacto->pareja->nombre . ' ' . $contacto->pareja->ap_paterno . ' ' . $contacto->pareja->ap_materno : 'N/A'; break; case 'email': $extraData = array_merge($extraData, [ $data = array_merge($data, [ 'Correo Electrónico' => $contacto->correos->pluck('correo_electronico')->join(', ') ?? 'N/A', 'Tipo de Correo Electrónico' => $contacto->correos->pluck('tipo_correo_electronico')->join(', ') ?? 'N/A', ]); Loading @@ -204,20 +216,44 @@ private function formatContactoData($contacto) } } return array_merge($defaultData, $extraData); return $data; } private function getExtraHeadings() { $headings = []; $fields = $this->extraFields; if (in_array('todos', $fields)) { $fields = ['domicilio', 'cumpleanos', 'telefonos', 'conyuge', 'email']; $fields = ['profesion', 'nombre', 'ap_paterno', 'ap_materno', 'cargo', 'cargo_desc', 'grupo', 'subgrupo', 'domicilio', 'cumpleanos', 'telefonos', 'conyuge', 'email']; } $headings = []; foreach ($fields as $field) { switch ($field) { case 'profesion': $headings[] = 'Profesión'; break; case 'nombre': $headings[] = 'Nombre'; break; case 'ap_paterno': $headings[] = 'Apellido Paterno'; break; case 'ap_materno': $headings[] = 'Apellido Materno'; break; case 'cargo': $headings[] = 'Cargo'; break; case 'cargo_desc': $headings[] = 'Descripción del cargo'; break; case 'grupo': $headings[] = 'Grupo'; break; case 'subgrupo': $headings[] = 'Subgrupo'; break; case 'domicilio': $headings = array_merge($headings, ['Domicilio Oficial', 'Código Postal', 'Localidad Oficial', 'Municipio Oficial', 'Estado', 'País']); break; Loading resources/views/adminGen/contactos/export.blade.php +10 −2 Original line number Diff line number Diff line Loading @@ -72,11 +72,19 @@ class="w-full px-3 py-2 bg-white border border-gray-300 rounded-md" <select id="exportar" class="w-full px-3 py-2 bg-white border border-gray-300 rounded-md"> <option value="" disabled selected>Selecciona los campos a exportar</option> <option value="todos">Todos</option> <option value="conyuge">Cónyuge</option> <option value="profesion">Profesión</option> <option value="nombre">Nombre</option> <option value="ap_paterno">Apellido Paterno</option> <option value="ap_materno">Apellido Materno</option> <option value="cargo">Cargo</option> <option value="cargo_desc">Descripción del cargo</option> <option value="grupo">Grupo</option> <option value="subgrupo">Subgrupo</option> <option value="domicilio">Domicilio</option> <option value="cumpleanos">Cumpleaños</option> <option value="email">Correo electrónico</option> <option value="telefonos">Teléfonos</option> <option value="conyuge">Cónyuge</option> <option value="email">Correo electrónico</option> </select> <button type="button" onclick="agregarEtiqueta('exportar', 'exportarAgregados')" class="bg-blue-500 text-white px-3 py-2 rounded-md">Agregar</button> </div> Loading Loading
app/Exports/ContactosExport.php +60 −24 Original line number Diff line number Diff line Loading @@ -64,9 +64,7 @@ public function collection() public function headings(): array { $defaultHeadings = ['Profesión', 'Nombre', 'Apellido Paterno', 'Apellido Materno', 'Cargo', 'Descripción del cargo', 'Grupo', 'Subgrupo']; $extraHeadings = $this->getExtraHeadings(); return array_merge($defaultHeadings, $extraHeadings); return $this->getExtraHeadings(); } private function applyFilters($query) Loading Loading @@ -146,28 +144,42 @@ private function applyFilters($query) private function formatContactoData($contacto) { $defaultData = [ 'Profesión' => $contacto->profesion->abreviatura ?? 'N/A', 'Nombre' => $contacto->nombre, 'Apellido Paterno' => $contacto->ap_paterno, 'Apellido Materno' => $contacto->ap_materno ?? '', 'Cargo' => $contacto->cargo->nombre ?? 'N/A', 'Descripción del cargo' => $contacto->cargo_desc ?? 'N/A', 'Grupo' => $contacto->grupos->pluck('nombre')[0] ?? 'N/A', 'Subgrupo' => $contacto->subgrupos->pluck('nombre')[0] ?? 'N/A', ]; $extraData = []; $data = []; $fields = $this->extraFields; if (in_array('todos', $fields)) { $fields = ['domicilio', 'cumpleanos', 'telefonos', 'conyuge', 'email']; $fields = ['profesion', 'nombre', 'ap_paterno', 'ap_materno', 'cargo', 'cargo_desc', 'grupo', 'subgrupo', 'domicilio', 'cumpleanos', 'telefonos', 'conyuge', 'email']; } foreach ($fields as $field) { switch ($field) { case 'profesion': $data['Profesión'] = $contacto->profesion->abreviatura ?? 'N/A'; break; case 'nombre': $data['Nombre'] = $contacto->nombre ?? 'N/A'; break; case 'ap_paterno': $data['Apellido Paterno'] = $contacto->ap_paterno ?? 'N/A'; break; case 'ap_materno': $data['Apellido Materno'] = $contacto->ap_materno ?? 'N/A'; break; case 'cargo': $data['Cargo'] = $contacto->cargo->nombre ?? 'N/A'; break; case 'cargo_desc': $data['Descripción del cargo'] = $contacto->cargo_desc ?? 'N/A'; break; case 'grupo': $data['Grupo'] = $contacto->grupos->pluck('nombre')[0] ?? 'N/A'; break; case 'subgrupo': $data['Subgrupo'] = $contacto->subgrupos->pluck('nombre')[0] ?? 'N/A'; break; case 'domicilio': $extraData = array_merge($extraData, [ $data = array_merge($data, [ 'Domicilio Oficial' => $contacto->domicilio_oficial ?? 'N/A', 'Código Postal' => $contacto->codigo_postal ?? 'N/A', 'Localidad Oficial' => $contacto->localidad_oficial ?? 'N/A', Loading @@ -177,12 +189,12 @@ private function formatContactoData($contacto) ]); break; case 'cumpleanos': $extraData['Cumpleaños'] = $contacto->mes_cump && $contacto->dia_cump $data['Cumpleaños'] = $contacto->mes_cump && $contacto->dia_cump ? $contacto->mes_cump . '/' . $contacto->dia_cump : 'N/A'; break; case 'telefonos': $extraData = array_merge($extraData, [ $data = array_merge($data, [ 'Número de teléfono' => $contacto->telefonos->pluck('numero')->join(', ') ?? 'N/A', 'Tipo' => $contacto->telefonos->pluck('tipo')->join(', ') ?? 'N/A', 'Estatus' => $contacto->telefonos->pluck('estatus')->join(', ') ?? 'N/A', Loading @@ -191,12 +203,12 @@ private function formatContactoData($contacto) ]); break; case 'conyuge': $extraData['Cónyuge'] = $contacto->pareja $data['Cónyuge'] = $contacto->pareja ? $contacto->pareja->nombre . ' ' . $contacto->pareja->ap_paterno . ' ' . $contacto->pareja->ap_materno : 'N/A'; break; case 'email': $extraData = array_merge($extraData, [ $data = array_merge($data, [ 'Correo Electrónico' => $contacto->correos->pluck('correo_electronico')->join(', ') ?? 'N/A', 'Tipo de Correo Electrónico' => $contacto->correos->pluck('tipo_correo_electronico')->join(', ') ?? 'N/A', ]); Loading @@ -204,20 +216,44 @@ private function formatContactoData($contacto) } } return array_merge($defaultData, $extraData); return $data; } private function getExtraHeadings() { $headings = []; $fields = $this->extraFields; if (in_array('todos', $fields)) { $fields = ['domicilio', 'cumpleanos', 'telefonos', 'conyuge', 'email']; $fields = ['profesion', 'nombre', 'ap_paterno', 'ap_materno', 'cargo', 'cargo_desc', 'grupo', 'subgrupo', 'domicilio', 'cumpleanos', 'telefonos', 'conyuge', 'email']; } $headings = []; foreach ($fields as $field) { switch ($field) { case 'profesion': $headings[] = 'Profesión'; break; case 'nombre': $headings[] = 'Nombre'; break; case 'ap_paterno': $headings[] = 'Apellido Paterno'; break; case 'ap_materno': $headings[] = 'Apellido Materno'; break; case 'cargo': $headings[] = 'Cargo'; break; case 'cargo_desc': $headings[] = 'Descripción del cargo'; break; case 'grupo': $headings[] = 'Grupo'; break; case 'subgrupo': $headings[] = 'Subgrupo'; break; case 'domicilio': $headings = array_merge($headings, ['Domicilio Oficial', 'Código Postal', 'Localidad Oficial', 'Municipio Oficial', 'Estado', 'País']); break; Loading
resources/views/adminGen/contactos/export.blade.php +10 −2 Original line number Diff line number Diff line Loading @@ -72,11 +72,19 @@ class="w-full px-3 py-2 bg-white border border-gray-300 rounded-md" <select id="exportar" class="w-full px-3 py-2 bg-white border border-gray-300 rounded-md"> <option value="" disabled selected>Selecciona los campos a exportar</option> <option value="todos">Todos</option> <option value="conyuge">Cónyuge</option> <option value="profesion">Profesión</option> <option value="nombre">Nombre</option> <option value="ap_paterno">Apellido Paterno</option> <option value="ap_materno">Apellido Materno</option> <option value="cargo">Cargo</option> <option value="cargo_desc">Descripción del cargo</option> <option value="grupo">Grupo</option> <option value="subgrupo">Subgrupo</option> <option value="domicilio">Domicilio</option> <option value="cumpleanos">Cumpleaños</option> <option value="email">Correo electrónico</option> <option value="telefonos">Teléfonos</option> <option value="conyuge">Cónyuge</option> <option value="email">Correo electrónico</option> </select> <button type="button" onclick="agregarEtiqueta('exportar', 'exportarAgregados')" class="bg-blue-500 text-white px-3 py-2 rounded-md">Agregar</button> </div> Loading