{
    "uuid": "09a8c2168db332aca8d5d8c759b003ca",
    "elementtype": "fichinter",
    "schema_kind": "intervention",
    "title": "Fiche d'intervention - Vérification ÉPI escalade club FFME",
    "description": "Vérification périodique du parc ÉPI (cordes, baudriers, casques, mousquetons, dégaines, assureurs) d'un club d'escalade affilié FFME. Distinct de l'ÉPI antichute professionnel. Fréquence annuelle minimum, plus rapprochée si usage intensif.",
    "export_date": "2026-05-30 10:00:00",
    "dolibarr_version": "18.0.0",
    "extrafields": [
        {
            "name": "vepi_club",
            "label": "Club",
            "type": "varchar",
            "size": "200",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Nom du club, numéro d'affiliation FFME",
            "pos": 100,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "vepi_date",
            "label": "Date de vérification",
            "type": "date",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 110,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "vepi_verificateur",
            "label": "Vérificateur",
            "type": "varchar",
            "size": "200",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Nom et qualification (titulaire FFME formation contrôle ÉPI ou équivalent)",
            "pos": 120,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "vepi_perimetre",
            "label": "Périmètre de la vérification",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "parc_complet": "Parc complet du club",
                    "inventaire_partiel": "Inventaire partiel (préciser)",
                    "nouveau_materiel": "Nouveau matériel uniquement",
                    "controle_suite_chute": "Contrôle ponctuel suite à chute / incident"
                }
            },
            "help": "",
            "pos": 130,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "parc_complet",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_cordes_total",
            "label": "Cordes - total",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "Nombre total dans l'inventaire",
            "pos": 200,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_cordes_verifiees",
            "label": "Cordes - vérifiées",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 205,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_cordes_reformees",
            "label": "Cordes - réformées",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "Cordes mises au rebut (chute facteur > 1.0, gaine dégradée, durée d'usage)",
            "pos": 210,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_baudriers_total",
            "label": "Baudriers - total",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 220,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_baudriers_verifies",
            "label": "Baudriers - vérifiés",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 225,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_baudriers_reformes",
            "label": "Baudriers - réformés",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "Baudriers > 10 ans, usure coutures, sangles abîmées",
            "pos": 230,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_casques_total",
            "label": "Casques - total",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 240,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_casques_verifies",
            "label": "Casques - vérifiés",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 245,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_casques_reformes",
            "label": "Casques - réformés",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "Casques ayant subi un impact, fissures, sangle dégradée",
            "pos": 250,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_mousquetons_total",
            "label": "Mousquetons - total",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 260,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_mousquetons_verifies",
            "label": "Mousquetons - vérifiés",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 265,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_mousquetons_reformes",
            "label": "Mousquetons - réformés",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "Marquage illisible, jeu de doigt, gorge usée",
            "pos": 270,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_assureurs_total",
            "label": "Assureurs - total",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 280,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_assureurs_verifies",
            "label": "Assureurs - vérifiés",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 285,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_nb_assureurs_reformes",
            "label": "Assureurs - réformés",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 1,
            "printable": 1,
            "param": [],
            "help": "Mécanisme usé, came défaillante, plaques rayées",
            "pos": 290,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "vepi_methode",
            "label": "Méthode de vérification",
            "type": "select",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "visuelle": "Inspection visuelle",
                    "visuelle_tactile": "Visuelle + tactile",
                    "test_pratique": "Visuelle + test pratique de manipulation"
                }
            },
            "help": "",
            "pos": 300,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "test_pratique",
            "alwayseditable": 0
        },
        {
            "name": "vepi_tracabilite_registre",
            "label": "Registre ÉPI tenu à jour",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Registre individuel par ÉPI, étiquetage en place",
            "pos": 310,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "vepi_formation_encadrants",
            "label": "Formation des encadrants à la vérification continue",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Encadrants formés à repérer les défauts au quotidien",
            "pos": 320,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "vepi_anomalies_detail",
            "label": "Anomalies détaillées",
            "type": "text",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 0,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Description des ÉPI mis au rebut, raisons",
            "pos": 400,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "vepi_plan_action",
            "label": "Plan d'action",
            "type": "text",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 0,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Rachats, formations, prochaine vérification",
            "pos": 410,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "vepi_conclusion",
            "label": "Conclusion globale",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "conforme": "Parc conforme",
                    "conforme_reserves": "Conforme avec réserves (matériel à surveiller)",
                    "non_conforme": "Non conforme - actions immédiates requises"
                }
            },
            "help": "",
            "pos": 500,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "conforme",
            "alwayseditable": 0
        },
        {
            "name": "vepi_prochaine_date",
            "label": "Date prochaine vérification",
            "type": "date",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Annuelle minimum, plus fréquente si usage intensif",
            "pos": 510,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "vepi_signature_verificateur",
            "label": "Signature vérificateur",
            "type": "varchar",
            "size": "150",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Nom et signature",
            "pos": 600,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        }
    ],
    "pdf_layout": {
        "version": "1.0",
        "page": {
            "format": "A4",
            "orientation": "portrait",
            "margins": { "top": 20, "right": 15, "bottom": 20, "left": 15 },
            "font_family": "helvetica",
            "font_size": 10
        },
        "header": {
            "title": "Vérification ÉPI escalade club",
            "subtitle": "Contrôle périodique du parc (FFME)",
            "logo_placeholder": "top-right",
            "show_page_number": true,
            "show_generated_date": true
        },
        "footer": {
            "text": "Document généré via schemas.cap-rel.fr",
            "legal_mentions": "À conserver dans le registre ÉPI du club"
        },
        "sections": [
            {
                "id": "identification",
                "title": "Identification",
                "layout": "two_columns",
                "fields": [
                    "vepi_club",
                    "vepi_date",
                    "vepi_verificateur",
                    "vepi_perimetre"
                ]
            },
            {
                "id": "inventaire_cordes",
                "title": "Cordes",
                "layout": "three_columns",
                "fields": [
                    "vepi_nb_cordes_total",
                    "vepi_nb_cordes_verifiees",
                    "vepi_nb_cordes_reformees"
                ]
            },
            {
                "id": "inventaire_baudriers",
                "title": "Baudriers",
                "layout": "three_columns",
                "fields": [
                    "vepi_nb_baudriers_total",
                    "vepi_nb_baudriers_verifies",
                    "vepi_nb_baudriers_reformes"
                ]
            },
            {
                "id": "inventaire_casques",
                "title": "Casques",
                "layout": "three_columns",
                "fields": [
                    "vepi_nb_casques_total",
                    "vepi_nb_casques_verifies",
                    "vepi_nb_casques_reformes"
                ]
            },
            {
                "id": "inventaire_mousquetons",
                "title": "Mousquetons",
                "layout": "three_columns",
                "fields": [
                    "vepi_nb_mousquetons_total",
                    "vepi_nb_mousquetons_verifies",
                    "vepi_nb_mousquetons_reformes"
                ]
            },
            {
                "id": "inventaire_assureurs",
                "title": "Assureurs",
                "layout": "three_columns",
                "fields": [
                    "vepi_nb_assureurs_total",
                    "vepi_nb_assureurs_verifies",
                    "vepi_nb_assureurs_reformes"
                ]
            },
            {
                "id": "methode",
                "title": "Méthode et organisation",
                "layout": "checklist",
                "fields": [
                    "vepi_methode",
                    "vepi_tracabilite_registre",
                    "vepi_formation_encadrants"
                ]
            },
            {
                "id": "observations",
                "title": "Anomalies et plan d'action",
                "layout": "full_width",
                "fields": ["vepi_anomalies_detail", "vepi_plan_action"]
            },
            {
                "id": "conclusion",
                "title": "Conclusion",
                "layout": "highlight_box",
                "fields": ["vepi_conclusion", "vepi_prochaine_date"]
            },
            {
                "id": "signature",
                "title": "Signature",
                "layout": "signature_block",
                "fields": ["vepi_signature_verificateur"],
                "signature_boxes": [
                    { "label": "Signature vérificateur", "for_field": "vepi_signature_verificateur" }
                ]
            }
        ],
        "field_render": {
            "vepi_club": { "style": "bold" },
            "vepi_conclusion": {
                "style": "highlight",
                "color_by_value": {
                    "conforme": "#1f8a1f",
                    "conforme_reserves": "#e69500",
                    "non_conforme": "#c00000"
                }
            },
            "vepi_anomalies_detail": { "min_height": 30, "show_if_empty": false },
            "vepi_plan_action": { "min_height": 30, "show_if_empty": false }
        }
    }
}
