Créer ses états

Il vous est proposé de créer un état des courriers par service.

Il sera utilisé dans ce chapitre l’assistant état et sous-état du générateur.

Quittez le projet openCimetiere et revenez à openExemple.

Créer l’état service

Nous allons utiliser l’assistant état du générateur dans le menu :

Administration -> Générateur -> Assistants

Choisir Création d’état puis choisir dans le select l’option service.

Ensuite avec la touche CTRL sélectionner les champs service.service et service.libellé.

Cliquer ensuite sur Import service dans la base.

../_images/utilisation_12.png

Un message apparaît : service enregistré.

Vous avez créé un enregistrement qui a pour identifiant service dans la table om_etat.

../_images/utilisation_13.png

Vous devez rendre d’abord votre état service actif pour pouvoir y accéder.

Il faut maintenant permettre l’accès dans l’affichage du service :

  • Ouvrir le fichier sql/pgsql/service.inc.php

  • Ajouter le script suivant :

    $href[3] = array(
        "lien" => "../pdf/pdfetat.php?obj=".$obj."&idx=",
        "id" => "",
        "lib" => "<img src=\"../om-theme/img/pdf-16x16.png\" alt=\""
                 ._("Edition PDF")."\" title=\""._("Edition PDF")."\" />",
    );
    

Nous rajoutons la ligne 3 dans le tableau href. Vous avez un état lié à l’affichage du service.

Il y a des exemples d’utilisation de href dans om_collectivité, om_etat, om_utilisateur,…

Créer le sous-état courrier

Nous allons utiliser l’assistant sous-état du générateur dans le menu :

Administration -> Générateur -> Assistants -> Création sous-état

Nous choisissons la table courrier et nous surlignons les champs courrier.dateenvoi, courrier.objetcourrier, courrier.emetteur et courrier.registre.

Nous choisissons courrier.service comme clé secondaire pour faire le lien avec service.

../_images/utilisation_14.png

En cliquant sur Import courrier dans la base vous créez un enregistrement ayant pour identifiant courrier.service dans la table om_sousetat :

../_images/utilisation_15.png

Associer le sous-état courrier à l’état service

Vous devez rendre d’abord votre sous-état courrier.service actif pour pouvoir l’associer.

Allez dans l’option Sous Etat du menu Paramétrage.

Recherchez le sous-état courrier.service et modifiez le en cochant actif (premier fieldset : collectivité).

Il vous faut maintenant associer le sous-état courrier.service à l’état service.

Allez dans l’option Etat du menu Paramétrage.

Modifiez l’état service et dans le fieldset à déplier Sous-état(s) après l’avoir coché actif sélectionnez le sous-état courrier.service.

../_images/utilisation_16.png

Vous avez désormais un état des courriers par service (Paramétrage -> Service -> Edition PDF) :

../_images/utilisation_17.png ../_images/utilisation_18.png

Mettre le nom et le prénom de l’emetteur dans le sous-état

Nous souhaitons mettre le nom et le prénom de l’emetteur à la place de la clé secondaire.

Vous devez modifier la requête sql du sous-état courrier.service dans la table om_sousetat de la manière suivante :

select courrier.dateenvoi as dateenvoi,
courrier.objetcourrier as objetcourrier,
concat(emetteur.nom,' ',emetteur.prenom) as emetteur,
courrier.registre as registre
from &DB_PREFIXEcourrier LEFT JOIN &DB_PREFIXEemetteur on emetteur.emetteur = courrier.emetteur
where courrier.service='&idx'

Votre nouvel état a la forme suivante :

../_images/utilisation_19.png

Vous avez de nombreux exemples d’utilisation d’état et de sous-état dans les applications openMairie.

Une utilisation originale a été faite pour le Cerfa du recensement dans openRecensement où à la place du logo il a été mis une image du Cerfa.

On ne peut cependant pas faire tous les états et il est fort possible que vous ayez des états spécifiques. Vous avez des exemples d’utilisation spécifique des méthodes de fpdf dans openElec : carte électorale, liste électorale,…

Vous pouvez compléter votre information avec le chapitre framework/edition et regarder les possibilités de paramétrage du générateur generateur/parametrage pour la réalisation d’état customisé.

Vous avez maintenant terminé l’exemple d’utilisation du Framework, le chapitre suivant a pour but de vous informer de manière complète sur ce dernier.