<?php

namespace Garradin;

use Garradin\Plugin\RecusFiscaux\Personne;
use Garradin\Plugin\RecusFiscaux\Utils;

// ------------------------------------------------------------
// récupérer les infos du formulaire
// ------------------------------------------------------------

// vérifier qu'on a bien sélectionné une activité ou un compte
if (! isset($_SESSION['tauxSelectionnes'])
    &&
    null === f('tarifs')
    &&
    null === f('comptes'))
{
    \Garradin\Utils::redirect(PLUGIN_URL . 'index.php');
}

// tarifs sélectionnés
if (null !== f('tarifs')) {
    $tarifsSelectionnes = f('tarifs');
} else if (! isset($_SESSION['tauxSelectionnes'])) {
    $tarifsSelectionnes = [];
}

// comptes sélectionnés
if (null !== f('comptes')) {
    $_SESSION['comptesSelectionnes'] = f('comptes');
} /*
else if (! isset($_SESSION['tauxSelectionnes'])) {
    $_SESSION['comptesSelectionnes'] = [];
}
  */

// taux de réduction associés
$tauxSelectionnes = array();
if (isset($tarifsSelectionnes))
{
    foreach ($tarifsSelectionnes as $idTarif)
    {
        $nomRadio = "taux_reduction_" . $idTarif;
        $tauxSelectionnes[$idTarif] = f("$nomRadio");
    }
}
if (isset($_SESSION['comptesSelectionnes']))
{
    foreach ($_SESSION['comptesSelectionnes'] as $idCompte)
    {
        $nomRadio = "taux_reduction_" . $idCompte;
        $tauxSelectionnes[$idCompte] = f("$nomRadio");
    }
}
$_SESSION['tauxSelectionnes'] = $tauxSelectionnes;

$lesTarifs = array_map(fn($elem) : string =>
                       strpos($elem, '_') !== false ? substr($elem, 0, strpos($elem, '_')) : "",
                       $tarifsSelectionnes);
$lesComptes = array_map(fn($elem) : string =>
                        strpos($elem, '_') !== false ? substr($elem, 1 + strpos($elem, '_')) : "",
                        $tarifsSelectionnes);

# versements des tarifs sélectionnées et de leur compte associé
if (count($lesTarifs) != 0)
{
    $_SESSION['lesVersements'] =
                           Utils::getVersementsTarifsComptes(
                               $_SESSION['annee_recu'],
                               $lesTarifs,
                               $lesComptes,
                               $champsNom);
}

// ajouter les versements sans tarif (tri par nom, compte, date)
if (isset($_SESSION['comptesSelectionnes']))
{
    $versementsSansTarif = Utils::getVersementsComptes($_SESSION['annee_recu'],
                                                       $_SESSION['comptesSelectionnes'],
                                                       $champsNom);
    foreach ($versementsSansTarif as $versement)
    {
        $_SESSION['lesVersements'][] = $versement;
    }
}
// préparation de l'affichage
$tpl->assign('lesVersements', $_SESSION['lesVersements']);
$tpl->assign('annee_recu', $_SESSION['annee_recu']);
$tpl->assign('plugin_css', ['style.css']);

// envoyer au template
$tpl->display(PLUGIN_ROOT . '/templates/versements_activites.tpl');