{
    "uuid": "d971402b614aa4273b3c9ccd0dd3d5e7",
    "schema_kind": "intervention",
    "lang": "fr",
    "title": "Fiche d'intervention - Contrôle installation de traite ISO 6690",
    "description": "Contrôle annuel d'une installation de traite selon la norme ISO 6690 (niveau de vide, débit de réserve, pulsation, manchons, décrochage, lavage).",
    "export_date": "2026-05-26 10:00:00",
    "dolibarr_version": "18.0.0",
    "extrafields": [
        {
            "name": "trait_exploitation",
            "label": "Exploitation",
            "type": "varchar",
            "size": "200",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Nom de l'exploitation agricole",
            "pos": 100,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_site",
            "label": "Site / commune",
            "type": "varchar",
            "size": "150",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Commune ou lieu-dit",
            "pos": 105,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_batiment",
            "label": "Bâtiment / salle de traite",
            "type": "varchar",
            "size": "100",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Identifiant du bâtiment ou de la salle",
            "pos": 110,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_identifiant_equipement",
            "label": "Identifiant équipement (numéro d'inventaire)",
            "type": "varchar",
            "size": "50",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Référence de la salle de traite contrôlée",
            "pos": 115,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_referent_eleveur",
            "label": "Référent éleveur",
            "type": "varchar",
            "size": "100",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Nom de l'éleveur ou du responsable de la traite",
            "pos": 120,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_type_installation",
            "label": "Type d'installation",
            "type": "select",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "epi_2x4": "Epi 2x4",
                    "epi_2x6": "Epi 2x6",
                    "epi_2x8": "Epi 2x8",
                    "epi_2x10": "Epi 2x10",
                    "epi_2x12": "Epi 2x12",
                    "tpa": "TPA (parallèle)",
                    "tandem": "Tandem",
                    "rotative_interne": "Rotative interne",
                    "rotative_externe": "Rotative externe"
                }
            },
            "help": "Configuration de la salle",
            "pos": 125,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_nombre_postes",
            "label": "Nombre de postes",
            "type": "int",
            "size": "3",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Postes de traite",
            "pos": 130,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_niveau_vide_kpa",
            "label": "Niveau de vide mesuré (kPa)",
            "type": "double",
            "size": "5,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Valeur cible 40 à 50 kPa selon ISO 6690",
            "pos": 200,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_vide_stable",
            "label": "Vide stable (oscillation < 2 kPa)",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Stabilité du vide en traite simulée",
            "pos": 205,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "trait_debit_reserve_lmin",
            "label": "Débit de réserve effectif (L/min)",
            "type": "int",
            "size": "5",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Capacité du système (mesure ISO 6690)",
            "pos": 210,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_debit_reserve_conforme",
            "label": "Débit de réserve conforme",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Conforme aux exigences ISO 6690",
            "pos": 215,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "trait_pulsation_freq",
            "label": "Fréquence pulsation (cycles/min)",
            "type": "int",
            "size": "3",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Typiquement 60 cycles/min",
            "pos": 220,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "60",
            "alwayseditable": 0
        },
        {
            "name": "trait_pulsation_ratio",
            "label": "Rapport pulsation",
            "type": "varchar",
            "size": "20",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Ex. 60:40, 65:35",
            "pos": 225,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_pulsation_symetrique",
            "label": "Pulsation symétrique entre demi-cycles",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Équilibre des deux moitiés",
            "pos": 230,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "trait_manchons_etat",
            "label": "État des manchons",
            "type": "select",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "bon": "Bon état",
                    "limite": "A surveiller (limite d'usure)",
                    "a_changer": "A remplacer immédiatement"
                }
            },
            "help": "Inspection visuelle et fréquence de remplacement",
            "pos": 235,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "bon",
            "alwayseditable": 0
        },
        {
            "name": "trait_manchons_nb_traites_estime",
            "label": "Nombre de traites depuis dernier changement",
            "type": "int",
            "size": "6",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Limite recommandée environ 2500 traites",
            "pos": 240,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_decrochage_auto_ok",
            "label": "Décrochage automatique fonctionnel",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Test du seuil de fin de traite",
            "pos": 300,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "trait_capteurs_lait_ok",
            "label": "Capteurs / compteurs à lait OK",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Mesures cohérentes par poste",
            "pos": 305,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "trait_rfid_identification_ok",
            "label": "Identification RFID fonctionnelle",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Lecture des bagues / boucles électroniques",
            "pos": 310,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "trait_lavage_temperature_c",
            "label": "Température lavage final (degC)",
            "type": "double",
            "size": "4,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Température en sortie de circuit en fin de cycle",
            "pos": 315,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_lavage_cycle_ok",
            "label": "Cycle de lavage complet OK",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Pré-rinçage, lavage chaud, rinçage acide",
            "pos": 320,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "trait_qualite_eau_lavage",
            "label": "Qualité eau de lavage",
            "type": "select",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "conforme": "Conforme",
                    "dure_a_adoucir": "Eau dure à adoucir",
                    "non_conforme": "Non conforme"
                }
            },
            "help": "Adoucissement / dureté",
            "pos": 325,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "conforme",
            "alwayseditable": 0
        },
        {
            "name": "trait_anomalies_constatees",
            "label": "Anomalies constatées",
            "type": "text",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Description des défauts relevés",
            "pos": 500,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_mesures_correctives",
            "label": "Mesures correctives",
            "type": "text",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Actions réalisées ou à programmer",
            "pos": 510,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_conclusion",
            "label": "Conclusion",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "apte": "APTE - Conforme ISO 6690",
                    "apte_reserve": "APTE avec réserves",
                    "inapte": "INAPTE - Anomalie majeure"
                }
            },
            "help": "Résultat global du contrôle",
            "pos": 600,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "apte",
            "alwayseditable": 0
        },
        {
            "name": "trait_date_prochaine_verif",
            "label": "Date prochain contrôle",
            "type": "date",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Périodicité annuelle recommandée",
            "pos": 610,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_technicien_nom",
            "personal_data": 1,
            "label": "Nom du technicien",
            "type": "varchar",
            "size": "100",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Intervenant",
            "pos": 700,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "trait_technicien_qualification",
            "label": "Qualification du technicien",
            "type": "varchar",
            "size": "150",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Agréé contrôle machines à traire (Optitraite, France Conseil Élevage, etc.)",
            "pos": 710,
            "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": "Contrôle d'installation de traite - ISO 6690",
            "subtitle": "Vérification annuelle réglementaire",
            "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": "Conformément à la norme ISO 6690 - à conserver par l'exploitant"
        },
        "sections": [
            {
                "id": "identification",
                "title": "Identification de l'exploitation",
                "layout": "two_columns",
                "fields": [
                    "trait_exploitation",
                    "trait_site",
                    "trait_batiment",
                    "trait_identifiant_equipement",
                    "trait_referent_eleveur",
                    "trait_type_installation",
                    "trait_nombre_postes"
                ]
            },
            {
                "id": "vide_pulsation",
                "title": "Vide et pulsation",
                "layout": "two_columns",
                "fields": [
                    "trait_niveau_vide_kpa",
                    "trait_vide_stable",
                    "trait_debit_reserve_lmin",
                    "trait_debit_reserve_conforme",
                    "trait_pulsation_freq",
                    "trait_pulsation_ratio",
                    "trait_pulsation_symetrique"
                ]
            },
            {
                "id": "manchons_decrochage",
                "title": "Manchons et décrochage",
                "layout": "checklist",
                "fields": [
                    "trait_manchons_etat",
                    "trait_manchons_nb_traites_estime",
                    "trait_decrochage_auto_ok",
                    "trait_capteurs_lait_ok",
                    "trait_rfid_identification_ok"
                ]
            },
            {
                "id": "lavage",
                "title": "Lavage et qualité eau",
                "layout": "checklist",
                "fields": [
                    "trait_lavage_temperature_c",
                    "trait_lavage_cycle_ok",
                    "trait_qualite_eau_lavage"
                ]
            },
            {
                "id": "observations",
                "title": "Anomalies et mesures correctives",
                "layout": "full_width",
                "fields": [
                    "trait_anomalies_constatees",
                    "trait_mesures_correctives"
                ]
            },
            {
                "id": "conclusion",
                "title": "Conclusion du contrôle",
                "layout": "highlight_box",
                "fields": [
                    "trait_conclusion",
                    "trait_date_prochaine_verif"
                ]
            },
            {
                "id": "signatures",
                "title": "Technicien",
                "layout": "signature_block",
                "fields": [
                    "trait_technicien_nom",
                    "trait_technicien_qualification"
                ],
                "signature_boxes": [
                    { "label": "Signature technicien", "for_field": "trait_technicien_nom" },
                    { "label": "Signature éleveur", "for_field": null }
                ]
            }
        ],
        "field_render": {
            "trait_exploitation": { "style": "bold" },
            "trait_identifiant_equipement": { "style": "bold", "frame": true },
            "trait_conclusion": {
                "style": "highlight",
                "color_by_value": {
                    "apte": "#1f8a1f",
                    "apte_reserve": "#e69500",
                    "inapte": "#c00000"
                }
            },
            "trait_anomalies_constatees": { "min_height": 30, "show_if_empty": false },
            "trait_mesures_correctives": { "min_height": 30, "show_if_empty": false },
            "trait_niveau_vide_kpa": { "suffix": " kPa" },
            "trait_debit_reserve_lmin": { "suffix": " L/min" },
            "trait_pulsation_freq": { "suffix": " cycles/min" },
            "trait_lavage_temperature_c": { "suffix": " degC" }
        }
    }
}
