{
    "uuid": "8736d02f8ea6e8f0d8f42314f16da94b",
    "elementtype": "fichinter",
    "schema_kind": "intervention",
    "title": "Fiche d'intervention - Relevé température HACCP journalier",
    "description": "Relevé journalier des températures de chambres froides et congélateurs selon plan HACCP",
    "export_date": "2026-05-26 10:00:00",
    "dolibarr_version": "18.0.0",
    "extrafields": [
        {
            "name": "hac_etablissement",
            "label": "Établissement",
            "type": "varchar",
            "size": "200",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Nom et adresse",
            "pos": 100,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "hac_date_releve",
            "label": "Date du relevé",
            "type": "date",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Jour du contrôle",
            "pos": 110,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "hac_horaire_releve",
            "label": "Horaire du relevé",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "matin": "Matin",
                    "midi": "Midi",
                    "soir": "Soir",
                    "fermeture": "Fermeture"
                }
            },
            "help": "Plage horaire",
            "pos": 120,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "matin",
            "alwayseditable": 0
        },
        {
            "name": "type_intervention",
            "label": "Type de relevé",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "journalier": "Relevé journalier de routine",
                    "controle_renforce": "Contrôle renforcé",
                    "apres_alarme": "Suite à alarme",
                    "audit_interne": "Audit interne"
                }
            },
            "help": "Nature du relevé",
            "pos": 200,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "journalier",
            "alwayseditable": 0
        },
        {
            "name": "hac_temp_cf_positive1",
            "label": "T° chambre froide positive 1 (°C)",
            "type": "double",
            "size": "5,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Cible: 0 à +4 °C",
            "pos": 300,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "hac_temp_cf_positive2",
            "label": "T° chambre froide positive 2 (°C)",
            "type": "double",
            "size": "5,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Cible: 0 à +4 °C",
            "pos": 310,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "hac_temp_cf_legumes",
            "label": "T° chambre froide légumes (°C)",
            "type": "double",
            "size": "5,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Cible: +4 à +8 °C",
            "pos": 320,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "hac_temp_congel1",
            "label": "T° congélateur 1 (°C)",
            "type": "double",
            "size": "5,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Cible: <= -18 °C",
            "pos": 330,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "hac_temp_congel2",
            "label": "T° congélateur 2 (°C)",
            "type": "double",
            "size": "5,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Cible: <= -18 °C",
            "pos": 340,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "hac_temp_vitrine_frigo",
            "label": "T° vitrine réfrigérée (°C)",
            "type": "double",
            "size": "5,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Cible: 0 à +4 °C",
            "pos": 350,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "hac_temp_reception",
            "label": "T° à la réception marchandises (°C)",
            "type": "double",
            "size": "5,1",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Lors de la livraison",
            "pos": 360,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "verif_cf_positive_conforme",
            "label": "Chambres froides positives conformes",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Toutes dans la plage 0-4 °C",
            "pos": 400,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "verif_congel_conforme",
            "label": "Congélateurs conformes",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Tous <= -18 °C",
            "pos": 410,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "verif_vitrine_conforme",
            "label": "Vitrine réfrigérée conforme",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Dans la plage 0-4 °C",
            "pos": 420,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "verif_thermometre_etalonne",
            "label": "Thermomètre étalonné",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Étalonnage à jour",
            "pos": 430,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "verif_marchandises_isolees",
            "label": "Marchandises non conformes isolées",
            "type": "boolean",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Si dérive de température",
            "pos": 440,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "1",
            "alwayseditable": 0
        },
        {
            "name": "actions_correctives_immediates",
            "label": "Actions correctives immédiates",
            "type": "text",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 0,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Mesures prises sur le champ",
            "pos": 500,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "anomalies_constatees",
            "label": "Anomalies constatées",
            "type": "text",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 0,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Description des écarts",
            "pos": 510,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "conclusion",
            "label": "Conclusion",
            "type": "select",
            "size": "",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": {
                "options": {
                    "apte": "CONFORME - Tout dans les seuils",
                    "apte_reserve": "CONFORME avec écarts mineurs",
                    "inapte": "NON CONFORME - Action immédiate"
                }
            },
            "help": "Bilan du relevé",
            "pos": 600,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "apte",
            "alwayseditable": 0
        },
        {
            "name": "date_prochaine_verif",
            "label": "Date prochain relevé",
            "type": "date",
            "size": "",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Périodicité journalière",
            "pos": 610,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "technicien_nom",
            "label": "Nom du préposé",
            "type": "varchar",
            "size": "100",
            "required": 1,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Personne ayant effectué le relevé",
            "pos": 700,
            "enabled": 1,
            "perms": "",
            "langfile": "",
            "computed": "",
            "default": "",
            "alwayseditable": 0
        },
        {
            "name": "qualification",
            "label": "Fonction",
            "type": "varchar",
            "size": "100",
            "required": 0,
            "unique": 0,
            "visible": 1,
            "totalizable": 0,
            "printable": 1,
            "param": [],
            "help": "Cuisinier, responsable HACCP, 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": "Relevé HACCP des températures",
            "subtitle": "Chambres froides et congélateurs - suivi journalier",
            "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 selon la réglementation en vigueur"
        },
        "sections": [
            {
                "id": "identification",
                "title": "Identification du relevé",
                "layout": "two_columns",
                "fields": [
                    "hac_etablissement",
                    "hac_date_releve",
                    "hac_horaire_releve"
                ]
            },
            {
                "id": "intervention",
                "title": "Type de relevé",
                "layout": "single_column",
                "fields": ["type_intervention"]
            },
            {
                "id": "temperatures",
                "title": "Températures mesurées",
                "layout": "two_columns",
                "fields": [
                    "hac_temp_cf_positive1",
                    "hac_temp_cf_positive2",
                    "hac_temp_cf_legumes",
                    "hac_temp_congel1",
                    "hac_temp_congel2",
                    "hac_temp_vitrine_frigo",
                    "hac_temp_reception"
                ]
            },
            {
                "id": "conformite",
                "title": "Conformité aux seuils HACCP",
                "layout": "checklist",
                "fields": [
                    "verif_cf_positive_conforme",
                    "verif_congel_conforme",
                    "verif_vitrine_conforme",
                    "verif_thermometre_etalonne",
                    "verif_marchandises_isolees"
                ]
            },
            {
                "id": "observations",
                "title": "Actions et anomalies",
                "layout": "full_width",
                "fields": [
                    "actions_correctives_immediates",
                    "anomalies_constatees"
                ]
            },
            {
                "id": "conclusion",
                "title": "Bilan du relevé",
                "layout": "highlight_box",
                "fields": ["conclusion", "date_prochaine_verif"]
            },
            {
                "id": "signatures",
                "title": "Préposé",
                "layout": "signature_block",
                "fields": ["technicien_nom", "qualification"],
                "signature_boxes": [
                    { "label": "Signature préposé", "for_field": "technicien_nom" },
                    { "label": "Signature responsable", "for_field": null }
                ]
            }
        ],
        "field_render": {
            "hac_etablissement": { "style": "bold" },
            "conclusion": {
                "style": "highlight",
                "color_by_value": {
                    "apte": "#1f8a1f",
                    "apte_reserve": "#e69500",
                    "inapte": "#c00000"
                }
            },
            "actions_correctives_immediates": { "min_height": 30, "show_if_empty": false },
            "anomalies_constatees": { "min_height": 30, "show_if_empty": false },
            "hac_temp_cf_positive1": { "suffix": " °C" },
            "hac_temp_cf_positive2": { "suffix": " °C" },
            "hac_temp_cf_legumes": { "suffix": " °C" },
            "hac_temp_congel1": { "suffix": " °C" },
            "hac_temp_congel2": { "suffix": " °C" },
            "hac_temp_vitrine_frigo": { "suffix": " °C" },
            "hac_temp_reception": { "suffix": " °C" }
        }
    }
}
