<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE gasell SYSTEM "http://www.gasell.org/xml/Gasell-0.1.dtd">

<gasell>
  <doc>Gasell - base de donnees pour la gestion d'une association </doc>

  <database>
    
    <table name="exercice">
	<doc>Exercice - annee/saison</doc>
	<column name="exeNum"	type="int" constraint="primary" 	><doc>Code de l'exercice</doc></column>
	<column name="dateDebut"	type="date"			><doc>date de debut de l'exercice</doc></column>
	<column name="dateFin"	type="date"				><doc>date de fin de l'exercice</doc></column>
    </table>

    <table name="civilite">
	<doc>civilite de la personne</doc>
	<column name="civCode"	type="serial" constraint="primary"	><doc>code de civilite</doc></column>
	<column name="civLib"	type="varchar"				><doc>valeur de la civilite</doc></column>
	<column name="civAbr"	type="varchar" 				><doc>abreviation de la civilite</doc></column>
    </table>

    <table name="personne">
	<doc>les personnes</doc>
	<column name="memNum"	type="serial" constraint="primary"	><doc>code du membre</doc></column>
	<column name="memNom"	type="varchar"				><doc>nom du membre</doc></column>
	<column name="memPrenom"	type="varchar"			><doc>prenom du membre</doc></column>
	<column name="civCode"	type="int" constraint="references" references="civilite on update cascade"><doc>code de la civilite</doc></column>
	<column name="memSurnom"	type="varchar"			><doc>surnom du membre</doc></column>
	<column name="memDatNai"	type="date"			><doc>date de naissance du membre</doc></column>
	<column name="memSexe"	type="int"				><doc>sexe du membre</doc></column>
	<column name="memDatAdh1"	type="date"			><doc>date d'adhesion du membre</doc></column>
	<column name="memDatMaj"	type="date"			><doc>date de mise a jour de l'adhesion(?)</doc></column>
	<column name="memObs"	type="varchar"				><doc>observation du membre</doc></column>
	<column name="adr1"	type="varchar"				><doc>adresse du membre</doc></column>
	<column name="adr2"	type="varchar"				><doc>adresse du membre</doc></column>
	<column name="adrCP"	type="int"				><doc>code postal du membre</doc></column>
	<column name="adrVille"	type="varchar"				><doc>ville du membre</doc></column>
    </table>

    <table name="commissions">
	<doc>commissions</doc>
	<column name="comNum"	type="int" constraint="primary" 	><doc>Code de la commission</doc></column>
	<column name="exeNum"	type="int" constraint="references" references="exercice on update cascade"><doc>code de l'exercice</doc></column>
	<column name="comLib"	type="varchar"				><doc>libelle de la commission</doc></column>
    </table>

    <table name="membresCommissions">
	<doc>membres de la commission</doc>
	<column name="memNum"	type="int" constraint="references" references="personne on update cascade"><doc>code du membre</doc></column>
	<column name="comNum"	type="int" constraint="references" references="commissions on update cascade"><doc>Code de la commission</doc></column>
    </table>

    <table name="moyenContact">
	<doc>moyen de contact des membres</doc>
	<column name="moyConCode"	type="int" constraint="primary"	><doc>code du moyen de contact</doc></column>
	<column name="moyConLib"	type="varchar" 			><doc>libelle du moyen de contact</doc></column>
    </table>

    <table name="fonctions">
	<doc>fonctions du bureau</doc>
	<column name="idFonction"	type="int" constraint="primary"	><doc>code de la fonction</doc></column>
	<column name="fonLib"	type="varchar" 				><doc>libelle de la fonction</doc></column>
    </table>

    <table name="membreBureau">
	<doc>membre du bureau</doc>
	<column name="idBureau"	type="int" constraint="primary"		><doc>code du bureau</doc></column>
	<column name="memNum"	type="int" constraint="references" references="personne on update cascade"><doc>Code du membre</doc></column>
	<column name="idFonction"	type="int" constraint="references" references="fonctions on update cascade"><doc>Code de la fonction</doc></column>
	<column name="exeNum"	type="int" constraint="references" references="exercice on update cascade"><doc>Code de l'exercice</doc></column>
    </table>

    <table name="contact">
	<doc>contact des membres</doc>
	<column name="memNum"	type="int" constraint="references" references="personne on update cascade"><doc>code du membre</doc></column>
	<column name="moyConCode"	type="int" constraint="references" references="moyenContact on update cascade"><doc>code ddu moyen de contact</doc></column>
	<column name="comVal"	type="varchar" 				><doc>valeur du contact</doc></column>
    </table>

    <table name="attribut">
	<doc>attribut(?)</doc>
	<column name="attCode"	type="int" constraint="primary"		><doc>code de l'attribut</doc></column>
	<column name="attLib"	type="varchar"				><doc>valeur de l'attribut</doc></column>
	<column name="attReq"	type="boolean" 				><doc>(?)</doc></column>
    </table>

    <table name="attributValeur">
	<doc>valeur de l'attribut(?)</doc>
	<column name="attValcode"	type="int" constraint="primary"	><doc>code de la valeur de l'attribut</doc></column>
	<column name="attCode"	type="int" constraint="references" references="attribut on update cascade"		><doc>code de l'attribut</doc></column>
	<column name="attVallib"	type="varchar" 			><doc>libelle de la valeur de l'attribut</doc></column>
    </table>

    <table name="tarif">
	<column name="tarNum"	type="serial" constraint="primary"	><doc>code de tarification</doc></column>
	<column name="tarMontant"	type="int" 			><doc>montant de la tarification</doc></column>
	<column name="exeNum"	type="int" constraint="references" references="exercice on update cascade" 		><doc>code de l'exercice</doc></column>
    </table>

    <table name="adhesion">
	<column name="adhNum"	type="serial" constraint="primary"	><doc>code de l'adhesion</doc></column>
	<column name="memNum"	type="int NOT NULL" constraint="references" references="personne on update cascade"		><doc>code du membre</doc></column>
	<column name="adhDate"	type="date"><doc>Date de l'adhesion</doc></column>
	<column name="typadhnum"	type="int NOT NULL" constraint="references" references="typeadhesion on update cascade" ><doc>Type de l'adhesion</doc></column>
	<column name="adhmontant"	type="int"><doc>Montant de cette adhesion</doc></column>
    </table>

    <table name="typeadhesion">
	<column name="typadhnum"	type="serial" constraint="primary"	><doc>Identifiant du type d'adhesion</doc></column>
	<column name="typadhlib"	type="varchar"				><doc>Libelle du type d'adhesion</doc></column>
	<column name="exeNum"	type="int NOT NULL" constraint="references" references="exercice on update cascade" 		><doc>code de l'exercice</doc></column>
    </table>

    <table name="attributMembre">
	<doc>attribut du membre(?)</doc>
	<column name="memNum"	type="int" constraint="references" references="personne on update cascade"		><doc>code du membre</doc></column>
	<column name="attCode"	type="int" constraint="references" references="attribut on update cascade"		><doc>code de l'attribut</doc></column>
	<column name="attValcode"	type="int" constraint="references" references="attributValeur on update cascade" 	><doc>code de l'attribut</doc></column>
    </table>

    <table name="modePaiement">
	<doc>mode de paiement</doc>
	<column name="modPaiCode"	type="int" constraint="primary"	><doc>code du mode de paiement</doc></column>
	<column name="modPaiLib"	type="varchar"			><doc>valeur du mode de paiement</doc></column>
    </table>

    <table name="reglement">
	<doc>reglement</doc>
	<column name="regNum"	type="serial" constraint="primary"	><doc>code du reglement</doc></column>
	<column name="adhNum"	type="int" constraint="references" references="adhesion on update cascade"		><doc>code de l'adhesion</doc></column>
	<column name="modPaiCode"	type="int" constraint="references" references="modePaiement on update cascade"	><doc>code du mode de paiement</doc></column>
	<column name="regDatEch"	type="date"			><doc>date d'echeance du reglement</doc></column>
	<column name="regMont"	type="int"				><doc>montant du reglement</doc></column>
	<column name="regRef"	type="int"				><doc>reference du reglement</doc></column>
	<column name="regValid"	type="int"				><doc>validation du reglement(?)</doc></column>
	<column name="regPoint"	type="int"				><doc>pointage du reglement</doc></column>
	<column name="regDomDpt"	type="int" 			><doc>(?)</doc></column>
    </table>

    <table name="competence">
	<doc>competence(?)</doc>
	<column name="compNum"	type="int" constraint="primary"		><doc>code de la competence</doc></column>
	<column name="designation"	type="varchar"			><doc>designation de la competence</doc></column>
    </table>

    <table name="attributObjet">
	<doc>attribut objet(?)</doc>
	<column name="objNum"	type="int" constraint="primary"	><doc>code de l'objet</doc></column>
	<column name="attCode"	type="int" constraint="references" references="attribut on update cascade"		><doc>code de l'attribut</doc></column>
	<column name="attValcode"	type="int" constraint="references" references="attributValeur on update cascade" 	><doc>code de l'attribut</doc></column>
    </table>

    <table name="competenceMembre">
	<doc>competence du membre</doc>
	<column name="memNum"	type="int" constraint="references" references="personne on update cascade"		><doc>code du membre</doc></column>
	<column name="compNum"	type="int" constraint="references" references="competence on update cascade"	><doc>code de l'attribut</doc></column>
    </table>

    <table name="activite">
	<doc>activite(?)</doc>
	<column name="actCode"	type="int" constraint="primary"		><doc>code de l'activite</doc></column>
	<column name="actLib"	type="varchar" 				><doc>code du type de l'activite</doc></column>
	<column name="id_parent"	type="int NOT NULL" 		><doc>libelle de l'activite</doc></column>
    </table>

    <table name="objets">
	<doc>Liste des objets</doc>
	<column name="objNum"	type="serial" constraint="primary"	><doc>code de l'object</doc></column>
	<column name="memNum"	type="int" constraint="references" references="personne on update cascade"		><doc>code du membre</doc></column>
        <column name="objLib"   type="varchar"				><doc>Libele de la nature de l'objet</doc></column>
    </table>

    <table name="intervention">
	<doc>Interventions</doc>
	<column name="intNum"	type="int" constraint="primary"		><doc>code de l'intervention</doc></column>
	<column name="adhNum"	type="int" constraint="references" references="adhesion on update cascade"		><doc>code de l'adhesion</doc></column>
	<column name="actCode"	type="int" constraint="references" references="activite on update cascade"		><doc>code de l'activite</doc></column>
	<column name="intDate"	type="date" 				><doc>date de l'intervention</doc></column>
    </table>

    <table name="catalogueOperations">
        <doc>Catalogue des operations realisables au cours d'une intervention</doc>
        <column name="catOpeNum" type="serial" constraint="primary"	><doc>Code de l'operation</doc></column>
        <column name="catOpe"    type="varchar"				><doc>Libele de l'operation</doc></column>
        <column name="id_parent" type="int NOT NULL"			><doc>Code de l'operation parente</doc></column>
    </table>

    <table name="detail">
	<doc>Details de l'intervention</doc>
	<column name="detNum"	type="int" constraint="primary"		><doc>code du details de l'intervention</doc></column>
	<column name="intNum"	type="int" constraint="references" references="intervention on update cascade"	><doc>code de l'intervention</doc></column>
	<column name="catOpeNum"   type="int" constraint="references" references="catalogueOperations on update cascade"><doc>Libele d'une operation de l'intervention prise dans le catalogue</doc></column>
	<column name="detPrecision"	type="varchar" 			><doc>libelle du detail de l'intervention</doc></column>
    </table>

    <!-- Tables utilisees pour le fonctionnement de l'appli -->
    <table name="config">
	<doc>stockage de la config par defaut</doc>
        <column name="exeNum" type="int" constraint="references" references="exercice on update cascade"/><!-- <doc>Numero de l'exercice lie a la config</doc></column>-->
	<column name="cfgsection"	type="varchar"				><doc>section du parametre</doc></column>
	<column name="cfgparam"	type="varchar"				><doc>libelle du parametre</doc></column>
	<column name="cfgvaleur"	type="varchar" 				><doc>valeur du parametre</doc></column>
    </table>
    
    <table name="horde_gasell">
	<doc>Table de parametres utilisateur necessaires en plus de horde</doc>
 	<column name="user_uid" type="varchar(255) NOT NULL"><doc>Nom de l'utilisateur</doc></column>
	<column name="memnum"   type="integer" constraint="references" references="personne on update cascade"><doc>Numero de la personne</doc></column>
	<column name="level"    type="integer"><doc>Niveau de droits de l'utilisateur</doc></column>
	<column name="template" type="varchar(255)"><doc>Nom de la template d'affichage de l'utilisateur</doc></column>
	<column name="db"       type="varchar(255)"><doc>Nom de la base de donnees pour l'utilisateur</doc></column>
    </table>
  </database>

  <config>
    <asso param="AdhesionPeriode" type="liste" install="oui">
      <choix valeur="EXERCICE"/>
      <choix valeur="12MOIS"/>
    </asso>
    <asso param="UseObjets" type="bool" defaut="NON" install="oui"/>
    <asso param="UseCompetences" type="bool" defaut="NON" install="oui"/>
    <asso param="Exercice" type="saisie" defaut="0"/>
    <asso param="ExerciceStatus" type="liste">
      <choix valeur="Ouvert"/>
      <choix valeur="EnCours"/>
      <choix valeur="Ferme" defaut="oui"/>
    </asso>
    <personnes param="CheckHomonymes"  type="bool" defaut="OUI" install="oui"/>
    <personnes param="ViewCompetences" type="bool" defaut="NON" install="oui"/>
    <personnes param="EditCompetences" type="bool" defaut="NON" install="oui"/>
  </config>
</gasell>

