amélioration gestion champs nom

FossilOrigin-Name: 23841b8b267a439702b01a11c2066c9be6469638b660b334c28d695f2c149f83
This commit is contained in:
engel 2022-03-29 12:49:03 +00:00
parent b1645828fc
commit 2bdd771a70
3 changed files with 60 additions and 27 deletions

View file

@ -299,7 +299,8 @@ class Utils
/**
* @return liste des années fiscales
*/
public static function getAnneesFiscales() {
public static function getAnneesFiscales() : array
{
$rows = DB::getInstance()->get(
"SELECT strftime('%Y', start_date) as annee
FROM acc_years
@ -312,6 +313,53 @@ class Utils
return $anneesFiscales;
}
/**
* récupérer dans la config du plugin les champs des membres
* utilisés pour le nom et le prénom ; ajouter/supprimer les
* modifications par rapport à la config garradin
* @return tableau des champs : clé = nom, valeur = { titre, position }
*/
public static function getChampsNom($config, $plugin) : array
{
// récupérer dans la config du plugin les champs mémorisés
// pour le nom et le prénom (le tableau est vide si pas mémorisé)
$champsNom = (array) $plugin->getConfig('champsNom');
// récupérer dans la config Garradin les champs des membres
// utilisés pour le nom et le préno
$champsGarradin = $config->get('champs_membres')->listAssocNames();
foreach ($champsGarradin as $name => $title)
{
if (stristr($title, 'nom'))
{
// retenir les champs dont le titre contient le terme 'nom'
// est-il présent dans la config du plugin ?
if (! array_key_exists($name, $champsNom))
{
// absent => l'ajouter
$champ = new \stdClass();
$champ->titre = $title;
$champ->position = 0;
$champsNom[$name] = $champ;
}
}
}
// opération symétrique : un champ mémorisé dans la config du
// plugin a-t-il disparu de la config garradin ?
foreach ($champsNom as $nom => $champ)
{
if (! array_key_exists($nom, $champsGarradin))
{
// absent => le supprimer
unset($champsNom[$nom]);
}
}
// mettre à jour la config du plugin
$plugin->setConfig('champsNom', $champsNom);
return $champsNom;
}
/**
* enregistrer les fichiers dans une archive zip
* @param $fileList : liste des fichiers à archiver