{
    "uuid": "faa7a9505cd467bdfcb93dda9db8ec0d",
    "elementtype": "fichinter",
    "schema_kind": "intervention",
    "title": "Fiche d'intervention - Nettoyage et désinfection d'un vélo entre deux locations",
    "description": "Nettoyage et désinfection d'un vélo de flotte de location entre deux clients : lavage du cadre, nettoyage de la transmission et des roues, désinfection des points de contact (poignées, leviers, selle, sonnette, console), respect du temps de contact du produit et traçabilité horodatée de l'opération.",
    "export_date": "2026-05-31 10:00:00",
    "dolibarr_version": "18.0.0",
    "extrafields": [
        {
            "name": "net_etablissement",
            "label": "Établissement",
            "type": "varchar",
            "size": "200",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Atelier ou agence de location",
            "pos": 100,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "net_site",
            "label": "Site / agence",
            "type": "varchar",
            "size": "150",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 105,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "net_identifiant_engin",
            "label": "Identifiant engin",
            "type": "varchar",
            "size": "50",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Numéro inventaire interne",
            "pos": 110,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "net_marque_modele",
            "label": "Marque et modèle",
            "type": "varchar",
            "size": "150",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 115,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "net_type_engin",
            "label": "Type d'engin",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "velo_classique": "Vélo classique",
                    "vae": "VAE (vélo à assistance électrique)",
                    "velo_cargo": "Vélo cargo",
                    "velo_enfant": "Vélo enfant"
                }
            },
            "help": "Catégorie",
            "pos": 120,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "velo_classique",
            "alwayseditable": 0
        },
        {
            "name": "net_date_retour_location",
            "label": "Date de retour de location",
            "type": "date",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Fin de la location précédente",
            "pos": 125,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "net_numero_location_prec",
            "label": "Numéro location précédente",
            "type": "varchar",
            "size": "50",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Référence de traçabilité",
            "pos": 130,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "net_niveau_salissure",
            "label": "Niveau de salissure constaté",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "propre": "Propre",
                    "salissure_legere": "Salissure légère",
                    "tres_sale": "Très sale, boue et traces",
                    "souillure": "Souillure organique à désinfecter"
                }
            },
            "help": "À réception en atelier",
            "pos": 135,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "salissure_legere",
            "alwayseditable": 0
        },
        {
            "name": "net_objets_oublies",
            "label": "Objets oubliés par le client",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Sacoche, accessoire, antivol",
            "pos": 140,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "op_lavage_cadre",
            "label": "Lavage du cadre et des fourches",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Nettoyant doux pH neutre",
            "pos": 145,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_nettoyage_transmission",
            "label": "Nettoyage de la transmission",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Dégraissage chaîne et cassette",
            "pos": 150,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_nettoyage_roues",
            "label": "Nettoyage des roues et pneus",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Jantes et flancs de pneus",
            "pos": 155,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_sechage",
            "label": "Séchage du vélo",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Chiffon microfibre, air comprimé basse pression",
            "pos": 160,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_relubrification",
            "label": "Relubrification après lavage",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Chaîne sèche après nettoyage humide",
            "pos": 165,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_produit_desinfectant",
            "label": "Produit désinfectant utilisé",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "alcool_70": "Alcool isopropylique 70 pourcent",
                    "ammonium_quaternaire": "Ammonium quaternaire",
                    "lingette_norme": "Lingette désinfectante EN 14476",
                    "autre": "Autre (préciser dans les observations)"
                }
            },
            "help": "Norme de référence EN 14476 (virucide)",
            "pos": 170,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "alcool_70",
            "alwayseditable": 0
        },
        {
            "name": "op_desinfection_poignees",
            "label": "Désinfection des poignées",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Point de contact principal",
            "pos": 175,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_desinfection_leviers",
            "label": "Désinfection des leviers de frein et vitesses",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 180,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_desinfection_selle",
            "label": "Désinfection de la selle",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Surface de contact prolongé",
            "pos": 185,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_desinfection_console",
            "label": "Désinfection console / afficheur",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "VAE uniquement",
            "pos": 190,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "0",
            "alwayseditable": 0
        },
        {
            "name": "op_desinfection_sonnette",
            "label": "Désinfection de la sonnette",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 195,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_temps_contact_respecte",
            "label": "Temps de contact du produit respecté",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Selon notice du produit, souvent 1 à 5 minutes",
            "pos": 200,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_controle_visuel_apres",
            "label": "Contrôle visuel après nettoyage",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Absence de trace, organes accessibles",
            "pos": 205,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "op_temps_passe",
            "label": "Temps passé (minutes)",
            "type": "int",
            "size": "4",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Durée de l'opération",
            "pos": 210,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "net_observations",
            "label": "Observations",
            "type": "text",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 0,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Remarques, produit alternatif, défauts constatés",
            "pos": 215,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "net_verdict",
            "label": "Verdict du nettoyage",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "pret_location": "PRÊT - Remise en location immédiate",
                    "a_reviser": "À RÉVISER - Défaut technique détecté",
                    "rebut": "REBUT - Engin retiré de la flotte"
                }
            },
            "help": "Résultat de l'opération",
            "pos": 220,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "pret_location",
            "alwayseditable": 0
        },
        {
            "name": "net_date_operation",
            "label": "Date et heure de l'opération",
            "type": "datetime",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Horodatage de traçabilité",
            "pos": 225,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "net_operateur_nom",
            "label": "Nom de l'opérateur",
            "type": "varchar",
            "size": "100",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "",
            "pos": 230,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "net_qualification",
            "label": "Fonction de l'opérateur",
            "type": "varchar",
            "size": "100",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Agent d'entretien, mécanicien cycle",
            "pos": 235,
            "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": "Fiche de nettoyage et désinfection vélo",
            "subtitle": "Opération entre deux locations",
            "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": "Document à conserver pour la traçabilité sanitaire de la flotte"
        },
        "sections": [
            {
                "id": "identification",
                "title": "Identification de l'engin",
                "layout": "two_columns",
                "fields": [
                    "net_etablissement",
                    "net_site",
                    "net_identifiant_engin",
                    "net_marque_modele",
                    "net_type_engin",
                    "net_date_retour_location",
                    "net_numero_location_prec"
                ]
            },
            {
                "id": "etat_avant",
                "title": "État à réception",
                "layout": "two_columns",
                "fields": [
                    "net_niveau_salissure",
                    "net_objets_oublies"
                ]
            },
            {
                "id": "nettoyage",
                "title": "Nettoyage",
                "layout": "checklist",
                "fields": [
                    "op_lavage_cadre",
                    "op_nettoyage_transmission",
                    "op_nettoyage_roues",
                    "op_sechage",
                    "op_relubrification"
                ]
            },
            {
                "id": "desinfection",
                "title": "Désinfection des points de contact",
                "layout": "checklist",
                "fields": [
                    "op_produit_desinfectant",
                    "op_desinfection_poignees",
                    "op_desinfection_leviers",
                    "op_desinfection_selle",
                    "op_desinfection_console",
                    "op_desinfection_sonnette",
                    "op_temps_contact_respecte"
                ]
            },
            {
                "id": "verification",
                "title": "Vérification finale",
                "layout": "checklist",
                "fields": [
                    "op_controle_visuel_apres",
                    "op_temps_passe"
                ]
            },
            {
                "id": "observations",
                "title": "Observations",
                "layout": "full_width",
                "fields": [
                    "net_observations"
                ]
            },
            {
                "id": "conclusion",
                "title": "Conclusion",
                "layout": "highlight_box",
                "fields": [
                    "net_verdict",
                    "net_date_operation"
                ]
            },
            {
                "id": "signatures",
                "title": "Opérateur",
                "layout": "signature_block",
                "fields": [
                    "net_operateur_nom",
                    "net_qualification"
                ],
                "signature_boxes": [
                    {
                        "label": "Signature opérateur",
                        "for_field": "net_operateur_nom"
                    },
                    {
                        "label": "Cachet atelier",
                        "for_field": null
                    }
                ]
            }
        ],
        "field_render": {
            "net_etablissement": {
                "style": "bold"
            },
            "net_identifiant_engin": {
                "style": "bold",
                "frame": true
            },
            "net_verdict": {
                "style": "highlight",
                "color_by_value": {
                    "pret_location": "#1f8a1f",
                    "a_reviser": "#e69500",
                    "rebut": "#c00000"
                }
            },
            "net_observations": {
                "min_height": 30,
                "show_if_empty": false
            },
            "op_temps_passe": {
                "suffix": " min"
            }
        }
    }
}
