Commit bceea11e authored by Alfonso Rafael Solis Rangel's avatar Alfonso Rafael Solis Rangel
Browse files

Ahora los campos se tienen que agregar manualmente

parent 9bf41973
Loading
Loading
Loading
Loading
+60 −24
Original line number Diff line number Diff line
@@ -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)
@@ -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',
@@ -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',
@@ -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',
                    ]);
@@ -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;
+10 −2
Original line number Diff line number Diff line
@@ -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>