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

Funcion para devolver el listado de contactos y instituciones

parent 352c4542
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Storage;
use Carbon\Carbon;

class ContactoController extends Controller
{
@@ -662,4 +663,49 @@ public function upload(Request $request)

        return redirect()->route('contacto.get')->with('success', 'Importación de contactos almacenada correctamente');
    }

    public function obtenerEventos(Request $request){
        $start = Carbon::parse($request->query('start'));
        $end = Carbon::parse($request->query('end'));

        // Obtener cumpleaños en el rango de fechas visible
        $cumpleanios = Contacto::where(function ($query) use ($start, $end) {
            for ($date = $start->copy(); $date->lte($end); $date->addDay()) {
                $query->orWhere(function ($subQuery) use ($date) {
                    $subQuery->where('mes_cump', $date->format('m'))
                            ->where('dia_cump', $date->format('d'));
                });
            }
        })
        ->select('id', 'nombre', 'ap_paterno', 'ap_materno', 'mes_cump', 'dia_cump')
        ->get();

        // Obtener aniversarios de instituciones en el rango de fechas visible
        $aniversarios = Instituciones::whereBetween('aniversario', [$start, $end])
                                    ->select('id', 'nombre', 'aniversario')
                                    ->get();

        // Combinar los datos en un solo array para el calendario
        $eventos = $cumpleanios->map(function ($contacto) {
            return [
                'id' => $contacto->id,
                'title' => $contacto->nombre . ' ' . $contacto->ap_paterno. ' ' . $contacto->ap_materno,
                'start' => now()->year . '-' . str_pad($contacto->mes_cump, 2, '0', STR_PAD_LEFT) . '-' . str_pad($contacto->dia_cump, 2, '0', STR_PAD_LEFT),
                'className' => 'success',
                'description' => 'Cumpleaños de ' . $contacto->nombre,
            ];
        })->merge($aniversarios->map(function ($institucion) {
            return [
                'id' => $institucion->id,
                'title' => 'Aniversario de ' . $institucion->nombre,
                'start' => $institucion->aniversario,
                'className' => 'danger',
                'description' => 'Aniversario de ' . $institucion->nombre,
            ];
        }));

        return response()->json($eventos);
    }
}

    
 No newline at end of file