{"id":7315,"date":"2025-06-23T10:42:03","date_gmt":"2025-06-23T10:42:03","guid":{"rendered":"https:\/\/vignetosicuro.it\/?page_id=7315"},"modified":"2025-06-23T10:44:54","modified_gmt":"2025-06-23T10:44:54","slug":"quaderno-di-campagna","status":"publish","type":"page","link":"https:\/\/vignetosicuro.it\/fr\/quaderno-di-campagna\/","title":{"rendered":"Carnet de pays"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"7315\" class=\"elementor elementor-7315\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-cd44f9a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"cd44f9a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48a4e51\" data-id=\"48a4e51\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d6a6147 elementor-widget elementor-widget-html\" data-id=\"d6a6147\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t    <div class=\"container\">\n        <header class=\"header\">\n            <h1>Carnet de pays<\/h1>\n            <p>Registre \u00e9lectronique pour la gestion des activit\u00e9s agricoles<\/p>\n        <\/header>\n\n        <!-- Navigation Tabs -->\n        <nav class=\"tab-navigation\">\n            <button class=\"tab-btn active\" data-tab=\"anagrafica\">\n                <span class=\"tab-icon\">??<\/span>\n                Donn\u00e9es \u00e0 caract\u00e8re personnel\n            <\/button>\n            <button class=\"tab-btn\" data-tab=\"parcelle\">\n                <span class=\"tab-icon\">??<\/span>\n                Colis\n            <\/button>\n            <button class=\"tab-btn\" data-tab=\"trattamenti\">\n                <span class=\"tab-icon\">??<\/span>\n                Traitements\n            <\/button>\n            <button class=\"tab-btn\" data-tab=\"concimazioni\">\n                <span class=\"tab-icon\">??<\/span>\n                Fertilisation\n            <\/button>\n            <button class=\"tab-btn\" data-tab=\"irrigazioni\">\n                <span class=\"tab-icon\">??<\/span>\n                Irrigation\n            <\/button>\n            <button class=\"tab-btn\" data-tab=\"raccolte\">\n                <span class=\"tab-icon\">??<\/span>\n                R\u00e9coltes\n            <\/button>\n            <button class=\"tab-btn\" data-tab=\"magazzino\">\n                <span class=\"tab-icon\">??<\/span>\n                Entrep\u00f4t\n            <\/button>\n            <button class=\"tab-btn\" data-tab=\"controlli\">\n                <span class=\"tab-icon\">??<\/span>\n                Contr\u00f4les\n            <\/button>\n        <\/nav>\n\n        <!-- Tab Content -->\n        <main class=\"tab-content\">\n            <!-- Anagrafica Aziendale -->\n            <section id=\"anagrafica\" class=\"tab-panel active\">\n                <div class=\"card\">\n                    <div class=\"card__header\">\n                        <h2>Registre des soci\u00e9t\u00e9s<\/h2>\n                    <\/div>\n                    <div class=\"card__body\">\n                        <div class=\"form-grid\">\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"ragione-sociale\">Nom de l'entreprise *<\/label>\n                                <input type=\"text\" id=\"ragione-sociale\" class=\"form-control\" required>\n                            <\/div>\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"codice-azienda\">Code de la soci\u00e9t\u00e9\/CUAA *<\/label>\n                                <input type=\"text\" id=\"codice-azienda\" class=\"form-control\" required>\n                            <\/div>\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"referente-tecnico\">Personne de contact technique<\/label>\n                                <input type=\"text\" id=\"referente-tecnico\" class=\"form-control\">\n                            <\/div>\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"indirizzo\">Adresse Si\u00e8ge<\/label>\n                                <input type=\"text\" id=\"indirizzo\" class=\"form-control\">\n                            <\/div>\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"comune\">Municipalit\u00e9<\/label>\n                                <input type=\"text\" id=\"comune\" class=\"form-control\">\n                            <\/div>\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"provincia\">Province<\/label>\n                                <input type=\"text\" id=\"provincia\" class=\"form-control\">\n                            <\/div>\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"cap\">PAC<\/label>\n                                <input type=\"text\" id=\"cap\" class=\"form-control\">\n                            <\/div>\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"codice-catastale\">Code du registre foncier<\/label>\n                                <input type=\"text\" id=\"codice-catastale\" class=\"form-control\">\n                            <\/div>\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"telefono\">Num\u00e9ro de t\u00e9l\u00e9phone<\/label>\n                                <input type=\"tel\" id=\"telefono\" class=\"form-control\">\n                            <\/div>\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"email\">Courriel<\/label>\n                                <input type=\"email\" id=\"email\" class=\"form-control\">\n                            <\/div>\n                            <div class=\"form-group\">\n                                <label class=\"form-label\" for=\"data-compilazione\">Date d'ach\u00e8vement<\/label>\n                                <input type=\"date\" id=\"data-compilazione\" class=\"form-control\">\n                            <\/div>\n                        <\/div>\n                        <div class=\"form-actions\">\n                            <button type=\"button\" class=\"btn btn--primary\" onclick=\"salvaAnagrafica()\">Sauvegardez vos donn\u00e9es personnelles<\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n\n            <!-- Registro Parcelle -->\n            <section id=\"parcelle\" class=\"tab-panel\">\n                <div class=\"card\">\n                    <div class=\"card__header\">\n                        <h2>Registre des parcelles cultiv\u00e9es<\/h2>\n                        <button class=\"btn btn--primary\" onclick=\"aggiungiParcella()\">Ajouter une parcelle<\/button>\n                    <\/div>\n                    <div class=\"card__body\">\n                        <div class=\"table-responsive\">\n                            <table class=\"data-table\" id=\"parcelle-table\">\n                                <thead>\n                                    <tr>\n                                        <th>Code de la parcelle<\/th>\n                                        <th>Superficie (ha)<\/th>\n                                        <th>Culture<\/th>\n                                        <th>Vari\u00e9t\u00e9<\/th>\n                                        <th>Technique de culture<\/th>\n                                        <th>Ann\u00e9e usine<\/th>\n                                        <th>Rotation<\/th>\n                                        <th>Actions<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody id=\"parcelle-tbody\">\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n\n            <!-- Trattamenti Fitosanitari -->\n            <section id=\"trattamenti\" class=\"tab-panel\">\n                <div class=\"card\">\n                    <div class=\"card__header\">\n                        <h2>Traitements phytosanitaires<\/h2>\n                        <button class=\"btn btn--primary\" onclick=\"aggiungiTrattamento()\">Ajouter un traitement<\/button>\n                    <\/div>\n                    <div class=\"card__body\">\n                        <div class=\"table-responsive\">\n                            <table class=\"data-table\" id=\"trattamenti-table\">\n                                <thead>\n                                    <tr>\n                                        <th>Date<\/th>\n                                        <th>Colis<\/th>\n                                        <th>Culture<\/th>\n                                        <th>Produit<\/th>\n                                        <th>Dose<\/th>\n                                        <th>Op\u00e9rateur<\/th>\n                                        <th>\u00c9quipement<\/th>\n                                        <th>Notes<\/th>\n                                        <th>Actions<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody id=\"trattamenti-tbody\">\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n\n            <!-- Concimazioni -->\n            <section id=\"concimazioni\" class=\"tab-panel\">\n                <div class=\"card\">\n                    <div class=\"card__header\">\n                        <h2>Fertilisation<\/h2>\n                        <button class=\"btn btn--primary\" onclick=\"aggiungiConcimazione()\">Ajouter la fertilisation<\/button>\n                    <\/div>\n                    <div class=\"card__body\">\n                        <div class=\"table-responsive\">\n                            <table class=\"data-table\" id=\"concimazioni-table\">\n                                <thead>\n                                    <tr>\n                                        <th>Date<\/th>\n                                        <th>Colis<\/th>\n                                        <th>Culture<\/th>\n                                        <th>Type<\/th>\n                                        <th>Produit<\/th>\n                                        <th>Quantit\u00e9<\/th>\n                                        <th>Modalit\u00e9s<\/th>\n                                        <th>Notes<\/th>\n                                        <th>Actions<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody id=\"concimazioni-tbody\">\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n\n            <!-- Irrigazioni -->\n            <section id=\"irrigazioni\" class=\"tab-panel\">\n                <div class=\"card\">\n                    <div class=\"card__header\">\n                        <h2>Irrigation<\/h2>\n                        <button class=\"btn btn--primary\" onclick=\"aggiungiIrrigazione()\">Ajouter Irrigation<\/button>\n                    <\/div>\n                    <div class=\"card__body\">\n                        <div class=\"table-responsive\">\n                            <table class=\"data-table\" id=\"irrigazioni-table\">\n                                <thead>\n                                    <tr>\n                                        <th>Date<\/th>\n                                        <th>Colis<\/th>\n                                        <th>Culture<\/th>\n                                        <th>Type Irrigation<\/th>\n                                        <th>Volume (m3\/ha)<\/th>\n                                        <th>Dur\u00e9e (heures)<\/th>\n                                        <th>Notes<\/th>\n                                        <th>Actions<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody id=\"irrigazioni-tbody\">\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n\n            <!-- Raccolte -->\n            <section id=\"raccolte\" class=\"tab-panel\">\n                <div class=\"card\">\n                    <div class=\"card__header\">\n                        <h2>R\u00e9coltes<\/h2>\n                        <button class=\"btn btn--primary\" onclick=\"aggiungiRaccolta()\">Ajouter une collection<\/button>\n                    <\/div>\n                    <div class=\"card__body\">\n                        <div class=\"table-responsive\">\n                            <table class=\"data-table\" id=\"raccolte-table\">\n                                <thead>\n                                    <tr>\n                                        <th>Date<\/th>\n                                        <th>Colis<\/th>\n                                        <th>Culture<\/th>\n                                        <th>Vari\u00e9t\u00e9<\/th>\n                                        <th>Quantit\u00e9<\/th>\n                                        <th>Unit\u00e9<\/th>\n                                        <th>Destination<\/th>\n                                        <th>Prix (\u20ac)<\/th>\n                                        <th>Actions<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody id=\"raccolte-tbody\">\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n\n            <!-- Magazzino Fitosanitari -->\n            <section id=\"magazzino\" class=\"tab-panel\">\n                <div class=\"card\">\n                    <div class=\"card__header\">\n                        <h2>Entrep\u00f4t de produits phytosanitaires<\/h2>\n                        <button class=\"btn btn--primary\" onclick=\"aggiungiProdottoMagazzino()\">Ajouter un produit<\/button>\n                    <\/div>\n                    <div class=\"card__body\">\n                        <div class=\"table-responsive\">\n                            <table class=\"data-table\" id=\"magazzino-table\">\n                                <thead>\n                                    <tr>\n                                        <th>Nom du produit<\/th>\n                                        <th>Principe actif<\/th>\n                                        <th>Unit\u00e9<\/th>\n                                        <th>Stock initial<\/th>\n                                        <th>Charges<\/th>\n                                        <th>D\u00e9charges<\/th>\n                                        <th>Stock actuel<\/th>\n                                        <th>Date limite<\/th>\n                                        <th>\u00c9tat<\/th>\n                                        <th>Actions<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody id=\"magazzino-tbody\">\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n\n            <!-- Controlli e Note -->\n            <section id=\"controlli\" class=\"tab-panel\">\n                <div class=\"card\">\n                    <div class=\"card__header\">\n                        <h2>Contr\u00f4les et notes<\/h2>\n                        <button class=\"btn btn--primary\" onclick=\"aggiungiControllo()\">Ajouter un contr\u00f4le<\/button>\n                    <\/div>\n                    <div class=\"card__body\">\n                        <div class=\"table-responsive\">\n                            <table class=\"data-table\" id=\"controlli-table\">\n                                <thead>\n                                    <tr>\n                                        <th>Date de la visite<\/th>\n                                        <th>Organe de contr\u00f4le<\/th>\n                                        <th>Contr\u00f4le de type<\/th>\n                                        <th>R\u00e9sultat<\/th>\n                                        <th>Notes<\/th>\n                                        <th>Non-conformit\u00e9<\/th>\n                                        <th>Mesures correctives<\/th>\n                                        <th>Date de r\u00e9solution<\/th>\n                                        <th>Actions<\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody id=\"controlli-tbody\">\n                                <\/tbody>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n        <\/main>\n\n        <!-- Dashboard Summary -->\n        <aside class=\"dashboard\">\n            <div class=\"card\">\n                <div class=\"card__header\">\n                    <h3>R\u00e9sum\u00e9 des activit\u00e9s<\/h3>\n                <\/div>\n                <div class=\"card__body\">\n                    <div class=\"stats-grid\">\n                        <div class=\"stat-item\">\n                            <span class=\"stat-value\" id=\"stat-parcelle\">0<\/span>\n                            <span class=\"stat-label\">Colis enregistr\u00e9s<\/span>\n                        <\/div>\n                        <div class=\"stat-item\">\n                            <span class=\"stat-value\" id=\"stat-trattamenti\">0<\/span>\n                            <span class=\"stat-label\">Total des traitements<\/span>\n                        <\/div>\n                        <div class=\"stat-item\">\n                            <span class=\"stat-value\" id=\"stat-superficie\">0<\/span>\n                            <span class=\"stat-label\">Superficie totale (ha)<\/span>\n                        <\/div>\n                        <div class=\"stat-item\">\n                            <span class=\"stat-value\" id=\"stat-scadenze\">0<\/span>\n                            <span class=\"stat-label\">Produits en Expiration<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/aside>\n\n        <!-- Export Actions -->\n        <div class=\"export-actions\">\n            <button class=\"btn btn--secondary\" onclick=\"esportaCSV()\">Exporter CSV<\/button>\n            <button class=\"btn btn--secondary\" onclick=\"stampaQuaderno()\">Imprimer le bloc-notes<\/button>\n        <\/div>\n    <\/div>\n\n    <!-- Modal for Forms -->\n    <div id=\"modal\" class=\"modal\">\n        <div class=\"modal-content\">\n            <span class=\"modal-close\" onclick=\"chiudiModal()\">\u00d7<\/span>\n            <div id=\"modal-body\">\n                <!-- Dynamic content will be inserted here -->\n            <\/div>\n        <\/div>\n    <\/div>\n    \n<script>\n    \/\/ Quaderno di Campagna - JavaScript Application\n\/\/ Data structure and application logic\n\n\/\/ Global data storage\nlet quadernoDati = {\n    anagrafica: {},\n    parcelle: [],\n    trattamenti: [],\n    concimazioni: [],\n    irrigazioni: [],\n    raccolte: [],\n    magazzino: [],\n    controlli: []\n};\n\n\/\/ Reference data from JSON\nconst datiRiferimento = {\n    colture: [\"Mais\", \"Frumento\", \"Orzo\", \"Avena\", \"Soia\", \"Girasole\", \"Barbabietola\", \"Pomodoro\", \"Peperone\", \"Melanzana\", \"Zucchina\", \"Lattuga\", \"Cavolo\", \"Vite da vino\", \"Vite da tavola\", \"Olivo\", \"Melo\", \"Pero\", \"Pesco\", \"Ciliegio\", \"Fragola\", \"Patata\", \"Cipolla\", \"Aglio\", \"Carota\", \"Altro\"],\n    prodottiFitosanitari: [\"Roundup (Glifosate)\", \"Confidor (Imidacloprid)\", \"Karate (Lambda-cialotrina)\", \"Rimon (Novaluron)\", \"Previcur (Propamocarb)\", \"Forum (Dimethomorph)\", \"Cabrio (Pyraclostrobin)\", \"Flint (Trifloxystrobin)\", \"Score (Difenoconazolo)\", \"Switch (Cyprodinil + Fludioxonil)\", \"Chorus (Cyprodinil)\"],\n    fertilizzanti: [\"Urea 46%\", \"Nitrato ammonico 33,5%\", \"DAP 18-46\", \"MAP 12-61\", \"NPK 20-10-10\", \"NPK 15-15-15\", \"Solfato potassico\", \"Perfosfato minerale\", \"Letame bovino\", \"Liquame suino\", \"Compost\", \"Digestato\"],\n    principiAttivi: [\"Glifosate\", \"Imidacloprid\", \"Lambda-cialotrina\", \"Novaluron\", \"Propamocarb\", \"Dimethomorph\", \"Pyraclostrobin\", \"Trifloxystrobin\", \"Difenoconazolo\", \"Cyprodinil\", \"Fludioxonil\", \"Azoxystrobin\", \"Tebuconazolo\"],\n    attrezzature: [\"Atomizzatore\", \"Irroratrice\", \"Nebulizzatore\", \"Spolveratore\", \"Lancia a mano\", \"Irroratrice trainata\", \"Atomizzatore portato\", \"Altro\"],\n    tecnicheColturali: [\"Convenzionale\", \"Biologico\", \"Integrato\", \"Biodinamico\"],\n    tipiIrrigazione: [\"A goccia\", \"Aspersione\", \"Scorrimento\", \"Sommersione\", \"Microirrigazione\", \"Irrigazione a pioggia\", \"Subirrigazione\"],\n    modalitaDistribuzione: [\"Spandimento\", \"Interramento\", \"Fertirrigazione\", \"Fogliare\", \"Localizzato\", \"In copertura\", \"Pre-semina\"],\n    destinazioniProdotto: [\"Vendita\", \"Trasformazione\", \"Autoconsumo\", \"Stoccaggio\", \"Conferimento cooperativa\"],\n    unitaMisura: [\"Quintali\", \"Kg\", \"Tonnellate\", \"Litri\"],\n    entiControllo: [\"AGEA\", \"Regione\", \"ASL\", \"Carabinieri NAS\", \"Ispettorato Agrario\", \"Organismo di controllo biologico\", \"Altro\"],\n    tipiControllo: [\"Ispettivo\", \"Documentale\", \"Campionamento\", \"Condizionalit\u00e0\", \"Biologico\", \"Altro\"],\n    esitiControllo: [\"Conforme\", \"Non conforme\", \"Con prescrizioni\", \"Sospeso\"]\n};\n\n\/\/ Initialize application\ndocument.addEventListener('DOMContentLoaded', function() {\n    initializeApp();\n    loadSampleData();\n    updateDashboard();\n});\n\nfunction initializeApp() {\n    \/\/ Set today's date for compilation\n    document.getElementById('data-compilazione').value = new Date().toISOString().split('T')[0];\n    \n    \/\/ Initialize tab navigation\n    const tabButtons = document.querySelectorAll('.tab-btn');\n    tabButtons.forEach(button => {\n        button.addEventListener('click', function() {\n            const tabId = this.getAttribute('data-tab');\n            switchTab(tabId);\n        });\n    });\n\n    \/\/ Load saved data from localStorage if available\n    const savedData = localStorage.getItem('quadernoCampagna');\n    if (savedData) {\n        quadernoDati = JSON.parse(savedData);\n        loadAnagrafica();\n        refreshAllTables();\n        updateDashboard();\n    }\n}\n\nfunction loadSampleData() {\n    \/\/ Sample data for demonstration\n    if (quadernoDati.parcelle.length === 0) {\n        quadernoDati.parcelle = [\n            {\n                id: 1,\n                codice: \"P001\",\n                superficie: 5.2,\n                coltura: \"Mais\",\n                varieta: \"Pioneer P1234\",\n                tecnicaColturale: \"Convenzionale\",\n                annoImpianto: 2024,\n                rotazione: \"Mais-Soia\"\n            },\n            {\n                id: 2,\n                codice: \"P002\",\n                superficie: 3.8,\n                coltura: \"Frumento\",\n                varieta: \"Bologna\",\n                tecnicaColturale: \"Integrato\",\n                annoImpianto: 2023,\n                rotazione: \"Frumento-Girasole\"\n            }\n        ];\n\n        quadernoDati.magazzino = [\n            {\n                id: 1,\n                nomeProdotto: \"Roundup\",\n                principioAttivo: \"Glifosate\",\n                unitaMisura: \"L\",\n                giacenzaIniziale: 20,\n                carichi: 10,\n                scarichi: 8,\n                giacenzaAttuale: 22,\n                dataScadenza: \"2025-12-31\",\n                stato: \"Disponibile\"\n            }\n        ];\n\n        quadernoDati.trattamenti = [\n            {\n                id: 1,\n                data: \"2024-06-15\",\n                parcella: \"P001\",\n                coltura: \"Mais\",\n                prodotto: \"Roundup\",\n                principioAttivo: \"Glifosate\",\n                dose: 2.5,\n                volumeDistribuzione: 200,\n                operatore: \"Mario Rossi\",\n                attrezzatura: \"Atomizzatore\",\n                condizioniMeteo: \"Sereno, vento leggero\",\n                avversitaTarget: \"Erbe infestanti\",\n                note: \"Trattamento pre-emergenza\"\n            }\n        ];\n\n        saveData();\n        refreshAllTables();\n        updateDashboard();\n    }\n}\n\n\/\/ Tab navigation\nfunction switchTab(tabId) {\n    \/\/ Hide all tab panels\n    const panels = document.querySelectorAll('.tab-panel');\n    panels.forEach(panel => panel.classList.remove('active'));\n    \n    \/\/ Remove active class from all buttons\n    const buttons = document.querySelectorAll('.tab-btn');\n    buttons.forEach(button => button.classList.remove('active'));\n    \n    \/\/ Show selected panel and activate button\n    document.getElementById(tabId).classList.add('active');\n    document.querySelector(`[data-tab=\"${tabId}\"]`).classList.add('active');\n}\n\n\/\/ Data persistence\nfunction saveData() {\n    localStorage.setItem('quadernoCampagna', JSON.stringify(quadernoDati));\n    showToast('Dati salvati correttamente', 'success');\n}\n\n\/\/ Anagrafica functions\nfunction salvaAnagrafica() {\n    quadernoDati.anagrafica = {\n        ragioneSociale: document.getElementById('ragione-sociale').value,\n        codiceAzienda: document.getElementById('codice-azienda').value,\n        referenteTecnico: document.getElementById('referente-tecnico').value,\n        indirizzo: document.getElementById('indirizzo').value,\n        comune: document.getElementById('comune').value,\n        provincia: document.getElementById('provincia').value,\n        cap: document.getElementById('cap').value,\n        codiceCatastale: document.getElementById('codice-catastale').value,\n        telefono: document.getElementById('telefono').value,\n        email: document.getElementById('email').value,\n        dataCompilazione: document.getElementById('data-compilazione').value\n    };\n    saveData();\n}\n\nfunction loadAnagrafica() {\n    if (quadernoDati.anagrafica) {\n        const anagrafica = quadernoDati.anagrafica;\n        document.getElementById('ragione-sociale').value = anagrafica.ragioneSociale || '';\n        document.getElementById('codice-azienda').value = anagrafica.codiceAzienda || '';\n        document.getElementById('referente-tecnico').value = anagrafica.referenteTecnico || '';\n        document.getElementById('indirizzo').value = anagrafica.indirizzo || '';\n        document.getElementById('comune').value = anagrafica.comune || '';\n        document.getElementById('provincia').value = anagrafica.provincia || '';\n        document.getElementById('cap').value = anagrafica.cap || '';\n        document.getElementById('codice-catastale').value = anagrafica.codiceCatastale || '';\n        document.getElementById('telefono').value = anagrafica.telefono || '';\n        document.getElementById('email').value = anagrafica.email || '';\n        document.getElementById('data-compilazione').value = anagrafica.dataCompilazione || '';\n    }\n}\n\n\/\/ Parcelle functions\nfunction aggiungiParcella() {\n    const modalBody = document.getElementById('modal-body');\n    modalBody.innerHTML = `\n        <h3>Aggiungi Parcella<\/h3>\n        <form class=\"modal-form\" onsubmit=\"salvaParcella(event)\">\n            <div class=\"form-group\">\n                <label class=\"form-label\">Codice Parcella *<\/label>\n                <input type=\"text\" id=\"parcella-codice\" class=\"form-control\" required>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Superficie (ha) *<\/label>\n                <input type=\"number\" id=\"parcella-superficie\" class=\"form-control\" step=\"0.1\" min=\"0\" required>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Coltura *<\/label>\n                <select id=\"parcella-coltura\" class=\"form-control\" required>\n                    <option value=\"\">Seleziona coltura<\/option>\n                    ${datiRiferimento.colture.map(c => `<option value=\"${c}\">${c}<\/option>`).join('')}\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Variet\u00e0<\/label>\n                <input type=\"text\" id=\"parcella-varieta\" class=\"form-control\">\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Tecnica Colturale *<\/label>\n                <select id=\"parcella-tecnica\" class=\"form-control\" required>\n                    <option value=\"\">Seleziona tecnica<\/option>\n                    ${datiRiferimento.tecnicheColturali.map(t => `<option value=\"${t}\">${t}<\/option>`).join('')}\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Anno Impianto<\/label>\n                <input type=\"number\" id=\"parcella-anno\" class=\"form-control\" min=\"2000\" max=\"2030\">\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Rotazione Colturale<\/label>\n                <input type=\"text\" id=\"parcella-rotazione\" class=\"form-control\">\n            <\/div>\n            <div class=\"modal-actions\">\n                <button type=\"button\" class=\"btn btn--secondary\" onclick=\"chiudiModal()\">Annulla<\/button>\n                <button type=\"submit\" class=\"btn btn--primary\">Salva Parcella<\/button>\n            <\/div>\n        <\/form>\n    `;\n    apriModal();\n}\n\nfunction salvaParcella(event) {\n    event.preventDefault();\n    \n    const parcella = {\n        id: Date.now(),\n        codice: document.getElementById('parcella-codice').value,\n        superficie: parseFloat(document.getElementById('parcella-superficie').value),\n        coltura: document.getElementById('parcella-coltura').value,\n        varieta: document.getElementById('parcella-varieta').value,\n        tecnicaColturale: document.getElementById('parcella-tecnica').value,\n        annoImpianto: parseInt(document.getElementById('parcella-anno').value) || null,\n        rotazione: document.getElementById('parcella-rotazione').value\n    };\n    \n    quadernoDati.parcelle.push(parcella);\n    saveData();\n    refreshParcelleTable();\n    updateDashboard();\n    chiudiModal();\n}\n\nfunction refreshParcelleTable() {\n    const tbody = document.getElementById('parcelle-tbody');\n    tbody.innerHTML = '';\n    \n    quadernoDati.parcelle.forEach(parcella => {\n        const row = document.createElement('tr');\n        row.innerHTML = `\n            <td>${parcella.codice}<\/td>\n            <td>${parcella.superficie}<\/td>\n            <td>${parcella.coltura}<\/td>\n            <td>${parcella.varieta || '-'}<\/td>\n            <td>${parcella.tecnicaColturale}<\/td>\n            <td>${parcella.annoImpianto || '-'}<\/td>\n            <td>${parcella.rotazione || '-'}<\/td>\n            <td>\n                <button class=\"action-btn action-btn--edit\" onclick=\"modificaParcella(${parcella.id})\">Modifica<\/button>\n                <button class=\"action-btn action-btn--delete\" onclick=\"eliminaParcella(${parcella.id})\">Elimina<\/button>\n            <\/td>\n        `;\n        tbody.appendChild(row);\n    });\n}\n\nfunction eliminaParcella(id) {\n    if (confirm('Sei sicuro di voler eliminare questa parcella?')) {\n        quadernoDati.parcelle = quadernoDati.parcelle.filter(p => p.id !== id);\n        saveData();\n        refreshParcelleTable();\n        updateDashboard();\n    }\n}\n\n\/\/ Trattamenti functions\nfunction aggiungiTrattamento() {\n    const modalBody = document.getElementById('modal-body');\n    const parcelleOptions = quadernoDati.parcelle.map(p => \n        `<option value=\"${p.codice}\" data-coltura=\"${p.coltura}\">${p.codice} - ${p.coltura}<\/option>`\n    ).join('');\n    \n    modalBody.innerHTML = `\n        <h3>Aggiungi Trattamento Fitosanitario<\/h3>\n        <form class=\"modal-form\" onsubmit=\"salvaTrattamento(event)\">\n            <div class=\"form-group\">\n                <label class=\"form-label\">Data Trattamento *<\/label>\n                <input type=\"date\" id=\"trattamento-data\" class=\"form-control\" required>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Parcella *<\/label>\n                <select id=\"trattamento-parcella\" class=\"form-control\" required onchange=\"updateColturaTrattamento()\">\n                    <option value=\"\">Seleziona parcella<\/option>\n                    ${parcelleOptions}\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Coltura<\/label>\n                <input type=\"text\" id=\"trattamento-coltura\" class=\"form-control\" readonly>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Prodotto Utilizzato *<\/label>\n                <select id=\"trattamento-prodotto\" class=\"form-control\" required>\n                    <option value=\"\">Seleziona prodotto<\/option>\n                    ${datiRiferimento.prodottiFitosanitari.map(p => `<option value=\"${p}\">${p}<\/option>`).join('')}\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Principio Attivo<\/label>\n                <select id=\"trattamento-principio\" class=\"form-control\">\n                    <option value=\"\">Seleziona principio attivo<\/option>\n                    ${datiRiferimento.principiAttivi.map(p => `<option value=\"${p}\">${p}<\/option>`).join('')}\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Dose (L\/ha o kg\/ha) *<\/label>\n                <input type=\"number\" id=\"trattamento-dose\" class=\"form-control\" step=\"0.1\" min=\"0\" required>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Volume Distribuzione (L\/ha)<\/label>\n                <input type=\"number\" id=\"trattamento-volume\" class=\"form-control\" step=\"1\" min=\"0\">\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Operatore Responsabile *<\/label>\n                <input type=\"text\" id=\"trattamento-operatore\" class=\"form-control\" required>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Attrezzatura *<\/label>\n                <select id=\"trattamento-attrezzatura\" class=\"form-control\" required>\n                    <option value=\"\">Seleziona attrezzatura<\/option>\n                    ${datiRiferimento.attrezzature.map(a => `<option value=\"${a}\">${a}<\/option>`).join('')}\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Condizioni Meteo<\/label>\n                <input type=\"text\" id=\"trattamento-meteo\" class=\"form-control\" placeholder=\"Es: Sereno, vento leggero\">\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Avversit\u00e0 Target<\/label>\n                <input type=\"text\" id=\"trattamento-avversita\" class=\"form-control\" placeholder=\"Es: Erbe infestanti, afidi\">\n            <\/div>\n            <div class=\"form-group\" style=\"grid-column: 1 \/ -1;\">\n                <label class=\"form-label\">Note<\/label>\n                <textarea id=\"trattamento-note\" class=\"form-control\" rows=\"3\"><\/textarea>\n            <\/div>\n            <div class=\"modal-actions\" style=\"grid-column: 1 \/ -1;\">\n                <button type=\"button\" class=\"btn btn--secondary\" onclick=\"chiudiModal()\">Annulla<\/button>\n                <button type=\"submit\" class=\"btn btn--primary\">Salva Trattamento<\/button>\n            <\/div>\n        <\/form>\n    `;\n    apriModal();\n}\n\nfunction updateColturaTrattamento() {\n    const parcellaSelect = document.getElementById('trattamento-parcella');\n    const colturaInput = document.getElementById('trattamento-coltura');\n    const selectedOption = parcellaSelect.options[parcellaSelect.selectedIndex];\n    colturaInput.value = selectedOption.getAttribute('data-coltura') || '';\n}\n\nfunction salvaTrattamento(event) {\n    event.preventDefault();\n    \n    const trattamento = {\n        id: Date.now(),\n        data: document.getElementById('trattamento-data').value,\n        parcella: document.getElementById('trattamento-parcella').value,\n        coltura: document.getElementById('trattamento-coltura').value,\n        prodotto: document.getElementById('trattamento-prodotto').value,\n        principioAttivo: document.getElementById('trattamento-principio').value,\n        dose: parseFloat(document.getElementById('trattamento-dose').value),\n        volumeDistribuzione: parseFloat(document.getElementById('trattamento-volume').value) || null,\n        operatore: document.getElementById('trattamento-operatore').value,\n        attrezzatura: document.getElementById('trattamento-attrezzatura').value,\n        condizioniMeteo: document.getElementById('trattamento-meteo').value,\n        avversitaTarget: document.getElementById('trattamento-avversita').value,\n        note: document.getElementById('trattamento-note').value\n    };\n    \n    quadernoDati.trattamenti.push(trattamento);\n    \n    \/\/ Update magazzino scarichi\n    updateMagazzinoScarichi(trattamento.prodotto, trattamento.dose);\n    \n    saveData();\n    refreshTrattamentiTable();\n    refreshMagazzinoTable();\n    updateDashboard();\n    chiudiModal();\n}\n\nfunction refreshTrattamentiTable() {\n    const tbody = document.getElementById('trattamenti-tbody');\n    tbody.innerHTML = '';\n    \n    quadernoDati.trattamenti.forEach(trattamento => {\n        const row = document.createElement('tr');\n        row.innerHTML = `\n            <td>${formatDate(trattamento.data)}<\/td>\n            <td>${trattamento.parcella}<\/td>\n            <td>${trattamento.coltura}<\/td>\n            <td>${trattamento.prodotto}<\/td>\n            <td>${trattamento.dose}<\/td>\n            <td>${trattamento.operatore}<\/td>\n            <td>${trattamento.attrezzatura}<\/td>\n            <td>${trattamento.note || '-'}<\/td>\n            <td>\n                <button class=\"action-btn action-btn--delete\" onclick=\"eliminaTrattamento(${trattamento.id})\">Elimina<\/button>\n            <\/td>\n        `;\n        tbody.appendChild(row);\n    });\n}\n\nfunction eliminaTrattamento(id) {\n    if (confirm('Sei sicuro di voler eliminare questo trattamento?')) {\n        quadernoDati.trattamenti = quadernoDati.trattamenti.filter(t => t.id !== id);\n        saveData();\n        refreshTrattamentiTable();\n        updateDashboard();\n    }\n}\n\n\/\/ Similar functions for other sections (Concimazioni, Irrigazioni, Raccolte, Controlli)\nfunction aggiungiConcimazione() {\n    const modalBody = document.getElementById('modal-body');\n    const parcelleOptions = quadernoDati.parcelle.map(p => \n        `<option value=\"${p.codice}\" data-coltura=\"${p.coltura}\">${p.codice} - ${p.coltura}<\/option>`\n    ).join('');\n    \n    modalBody.innerHTML = `\n        <h3>Aggiungi Concimazione<\/h3>\n        <form class=\"modal-form\" onsubmit=\"salvaConcimazione(event)\">\n            <div class=\"form-group\">\n                <label class=\"form-label\">Data Intervento *<\/label>\n                <input type=\"date\" id=\"concimazione-data\" class=\"form-control\" required>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Parcella *<\/label>\n                <select id=\"concimazione-parcella\" class=\"form-control\" required onchange=\"updateColturaConcimazione()\">\n                    <option value=\"\">Seleziona parcella<\/option>\n                    ${parcelleOptions}\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Coltura<\/label>\n                <input type=\"text\" id=\"concimazione-coltura\" class=\"form-control\" readonly>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Tipo Fertilizzante *<\/label>\n                <select id=\"concimazione-tipo\" class=\"form-control\" required>\n                    <option value=\"\">Seleziona tipo<\/option>\n                    <option value=\"Organico\">Organico<\/option>\n                    <option value=\"Chimico\">Chimico<\/option>\n                    <option value=\"Organo-minerale\">Organo-minerale<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Prodotto *<\/label>\n                <select id=\"concimazione-prodotto\" class=\"form-control\" required>\n                    <option value=\"\">Seleziona prodotto<\/option>\n                    ${datiRiferimento.fertilizzanti.map(f => `<option value=\"${f}\">${f}<\/option>`).join('')}\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Quantit\u00e0 (kg\/ha o L\/ha) *<\/label>\n                <input type=\"number\" id=\"concimazione-quantita\" class=\"form-control\" step=\"0.1\" min=\"0\" required>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Modalit\u00e0 Distribuzione *<\/label>\n                <select id=\"concimazione-modalita\" class=\"form-control\" required>\n                    <option value=\"\">Seleziona modalit\u00e0<\/option>\n                    ${datiRiferimento.modalitaDistribuzione.map(m => `<option value=\"${m}\">${m}<\/option>`).join('')}\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">N-P-K Contenuto<\/label>\n                <input type=\"text\" id=\"concimazione-npk\" class=\"form-control\" placeholder=\"Es: 20-10-10\">\n            <\/div>\n            <div class=\"form-group\" style=\"grid-column: 1 \/ -1;\">\n                <label class=\"form-label\">Note<\/label>\n                <textarea id=\"concimazione-note\" class=\"form-control\" rows=\"3\"><\/textarea>\n            <\/div>\n            <div class=\"modal-actions\" style=\"grid-column: 1 \/ -1;\">\n                <button type=\"button\" class=\"btn btn--secondary\" onclick=\"chiudiModal()\">Annulla<\/button>\n                <button type=\"submit\" class=\"btn btn--primary\">Salva Concimazione<\/button>\n            <\/div>\n        <\/form>\n    `;\n    apriModal();\n}\n\nfunction updateColturaConcimazione() {\n    const parcellaSelect = document.getElementById('concimazione-parcella');\n    const colturaInput = document.getElementById('concimazione-coltura');\n    const selectedOption = parcellaSelect.options[parcellaSelect.selectedIndex];\n    colturaInput.value = selectedOption.getAttribute('data-coltura') || '';\n}\n\nfunction salvaConcimazione(event) {\n    event.preventDefault();\n    \n    const concimazione = {\n        id: Date.now(),\n        data: document.getElementById('concimazione-data').value,\n        parcella: document.getElementById('concimazione-parcella').value,\n        coltura: document.getElementById('concimazione-coltura').value,\n        tipo: document.getElementById('concimazione-tipo').value,\n        prodotto: document.getElementById('concimazione-prodotto').value,\n        quantita: parseFloat(document.getElementById('concimazione-quantita').value),\n        modalita: document.getElementById('concimazione-modalita').value,\n        npk: document.getElementById('concimazione-npk').value,\n        note: document.getElementById('concimazione-note').value\n    };\n    \n    quadernoDati.concimazioni.push(concimazione);\n    saveData();\n    refreshConcimazioniTable();\n    updateDashboard();\n    chiudiModal();\n}\n\nfunction refreshConcimazioniTable() {\n    const tbody = document.getElementById('concimazioni-tbody');\n    tbody.innerHTML = '';\n    \n    quadernoDati.concimazioni.forEach(concimazione => {\n        const row = document.createElement('tr');\n        row.innerHTML = `\n            <td>${formatDate(concimazione.data)}<\/td>\n            <td>${concimazione.parcella}<\/td>\n            <td>${concimazione.coltura}<\/td>\n            <td>${concimazione.tipo}<\/td>\n            <td>${concimazione.prodotto}<\/td>\n            <td>${concimazione.quantita}<\/td>\n            <td>${concimazione.modalita}<\/td>\n            <td>${concimazione.note || '-'}<\/td>\n            <td>\n                <button class=\"action-btn action-btn--delete\" onclick=\"eliminaConcimazione(${concimazione.id})\">Elimina<\/button>\n            <\/td>\n        `;\n        tbody.appendChild(row);\n    });\n}\n\nfunction eliminaConcimazione(id) {\n    if (confirm('Sei sicuro di voler eliminare questa concimazione?')) {\n        quadernoDati.concimazioni = quadernoDati.concimazioni.filter(c => c.id !== id);\n        saveData();\n        refreshConcimazioniTable();\n        updateDashboard();\n    }\n}\n\n\/\/ Magazzino functions\nfunction aggiungiProdottoMagazzino() {\n    const modalBody = document.getElementById('modal-body');\n    modalBody.innerHTML = `\n        <h3>Aggiungi Prodotto al Magazzino<\/h3>\n        <form class=\"modal-form\" onsubmit=\"salvaProdottoMagazzino(event)\">\n            <div class=\"form-group\">\n                <label class=\"form-label\">Nome Prodotto *<\/label>\n                <input type=\"text\" id=\"magazzino-nome\" class=\"form-control\" required>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Principio Attivo<\/label>\n                <select id=\"magazzino-principio\" class=\"form-control\">\n                    <option value=\"\">Seleziona principio attivo<\/option>\n                    ${datiRiferimento.principiAttivi.map(p => `<option value=\"${p}\">${p}<\/option>`).join('')}\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Unit\u00e0 di Misura *<\/label>\n                <select id=\"magazzino-unita\" class=\"form-control\" required>\n                    <option value=\"\">Seleziona unit\u00e0<\/option>\n                    <option value=\"L\">Litri<\/option>\n                    <option value=\"kg\">Kg<\/option>\n                <\/select>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Giacenza Iniziale *<\/label>\n                <input type=\"number\" id=\"magazzino-giacenza\" class=\"form-control\" step=\"0.1\" min=\"0\" required>\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Carichi in Entrata<\/label>\n                <input type=\"number\" id=\"magazzino-carichi\" class=\"form-control\" step=\"0.1\" min=\"0\" value=\"0\">\n            <\/div>\n            <div class=\"form-group\">\n                <label class=\"form-label\">Data di Scadenza<\/label>\n                <input type=\"date\" id=\"magazzino-scadenza\" class=\"form-control\">\n            <\/div>\n            <div class=\"modal-actions\" style=\"grid-column: 1 \/ -1;\">\n                <button type=\"button\" class=\"btn btn--secondary\" onclick=\"chiudiModal()\">Annulla<\/button>\n                <button type=\"submit\" class=\"btn btn--primary\">Salva Prodotto<\/button>\n            <\/div>\n        <\/form>\n    `;\n    apriModal();\n}\n\nfunction salvaProdottoMagazzino(event) {\n    event.preventDefault();\n    \n    const giacenzaIniziale = parseFloat(document.getElementById('magazzino-giacenza').value);\n    const carichi = parseFloat(document.getElementById('magazzino-carichi').value) || 0;\n    \n    const prodotto = {\n        id: Date.now(),\n        nomeProdotto: document.getElementById('magazzino-nome').value,\n        principioAttivo: document.getElementById('magazzino-principio').value,\n        unitaMisura: document.getElementById('magazzino-unita').value,\n        giacenzaIniziale: giacenzaIniziale,\n        carichi: carichi,\n        scarichi: 0,\n        giacenzaAttuale: giacenzaIniziale + carichi,\n        dataScadenza: document.getElementById('magazzino-scadenza').value,\n        stato: calcolaStatoProdotto(document.getElementById('magazzino-scadenza').value)\n    };\n    \n    quadernoDati.magazzino.push(prodotto);\n    saveData();\n    refreshMagazzinoTable();\n    updateDashboard();\n    chiudiModal();\n}\n\nfunction refreshMagazzinoTable() {\n    const tbody = document.getElementById('magazzino-tbody');\n    tbody.innerHTML = '';\n    \n    quadernoDati.magazzino.forEach(prodotto => {\n        const row = document.createElement('tr');\n        row.innerHTML = `\n            <td>${prodotto.nomeProdotto}<\/td>\n            <td>${prodotto.principioAttivo || '-'}<\/td>\n            <td>${prodotto.unitaMisura}<\/td>\n            <td>${prodotto.giacenzaIniziale}<\/td>\n            <td>${prodotto.carichi}<\/td>\n            <td>${prodotto.scarichi}<\/td>\n            <td>${prodotto.giacenzaAttuale}<\/td>\n            <td>${formatDate(prodotto.dataScadenza)}<\/td>\n            <td><span class=\"status-indicator status-indicator--${prodotto.stato.toLowerCase()}\">${prodotto.stato}<\/span><\/td>\n            <td>\n                <button class=\"action-btn action-btn--delete\" onclick=\"eliminaProdottoMagazzino(${prodotto.id})\">Elimina<\/button>\n            <\/td>\n        `;\n        tbody.appendChild(row);\n    });\n}\n\nfunction updateMagazzinoScarichi(nomeProdotto, quantita) {\n    const prodotto = quadernoDati.magazzino.find(p => p.nomeProdotto.includes(nomeProdotto.split(' ')[0]));\n    if (prodotto) {\n        prodotto.scarichi += quantita;\n        prodotto.giacenzaAttuale = prodotto.giacenzaIniziale + prodotto.carichi - prodotto.scarichi;\n    }\n}\n\nfunction calcolaStatoProdotto(dataScadenza) {\n    if (!dataScadenza) return 'Disponibile';\n    \n    const oggi = new Date();\n    const scadenza = new Date(dataScadenza);\n    const differenza = scadenza - oggi;\n    const giorniRimanenti = Math.ceil(differenza \/ (1000 * 60 * 60 * 24));\n    \n    if (giorniRimanenti < 0) return 'Scaduto';\n    if (giorniRimanenti <= 30) return 'Scadenza';\n    return 'Disponibile';\n}\n\nfunction eliminaProdottoMagazzino(id) {\n    if (confirm('Sei sicuro di voler eliminare questo prodotto?')) {\n        quadernoDati.magazzino = quadernoDati.magazzino.filter(p => p.id !== id);\n        saveData();\n        refreshMagazzinoTable();\n        updateDashboard();\n    }\n}\n\n\/\/ Refresh all tables\nfunction refreshAllTables() {\n    refreshParcelleTable();\n    refreshTrattamentiTable();\n    refreshConcimazioniTable();\n    refreshMagazzinoTable();\n}\n\n\/\/ Modal functions\nfunction apriModal() {\n    document.getElementById('modal').style.display = 'block';\n}\n\nfunction chiudiModal() {\n    document.getElementById('modal').style.display = 'none';\n}\n\n\/\/ Utility functions\nfunction formatDate(dateString) {\n    if (!dateString) return '-';\n    const date = new Date(dateString);\n    return date.toLocaleDateString('it-IT');\n}\n\nfunction showToast(message, type = 'success') {\n    const toast = document.createElement('div');\n    toast.className = `toast toast--${type}`;\n    toast.textContent = message;\n    document.body.appendChild(toast);\n    \n    setTimeout(() => {\n        toast.remove();\n    }, 3000);\n}\n\n\/\/ Dashboard update\nfunction updateDashboard() {\n    document.getElementById('stat-parcelle').textContent = quadernoDati.parcelle.length;\n    document.getElementById('stat-trattamenti').textContent = quadernoDati.trattamenti.length;\n    \n    const superficieTotale = quadernoDati.parcelle.reduce((sum, p) => sum + p.superficie, 0);\n    document.getElementById('stat-superficie').textContent = superficieTotale.toFixed(1);\n    \n    const prodottiInScadenza = quadernoDati.magazzino.filter(p => p.stato === 'Scadenza' || p.stato === 'Scaduto').length;\n    document.getElementById('stat-scadenze').textContent = prodottiInScadenza;\n}\n\n\/\/ Export functions\nfunction esportaCSV() {\n    const tabAttiva = document.querySelector('.tab-panel.active').id;\n    let csvContent = '';\n    let filename = '';\n    \n    switch(tabAttiva) {\n        case 'parcelle':\n            csvContent = generateParcelleCSV();\n            filename = 'parcelle.csv';\n            break;\n        case 'trattamenti':\n            csvContent = generateTrattamentiCSV();\n            filename = 'trattamenti.csv';\n            break;\n        default:\n            showToast('Esportazione non disponibile per questa sezione', 'warning');\n            return;\n    }\n    \n    downloadCSV(csvContent, filename);\n}\n\nfunction generateParcelleCSV() {\n    const headers = ['Codice', 'Superficie', 'Coltura', 'Variet\u00e0', 'Tecnica', 'Anno', 'Rotazione'];\n    const rows = quadernoDati.parcelle.map(p => [\n        p.codice, p.superficie, p.coltura, p.varieta || '', \n        p.tecnicaColturale, p.annoImpianto || '', p.rotazione || ''\n    ]);\n    \n    return [headers, ...rows].map(row => row.join(',')).join('\\n');\n}\n\nfunction generateTrattamentiCSV() {\n    const headers = ['Data', 'Parcella', 'Coltura', 'Prodotto', 'Dose', 'Operatore'];\n    const rows = quadernoDati.trattamenti.map(t => [\n        t.data, t.parcella, t.coltura, t.prodotto, t.dose, t.operatore\n    ]);\n    \n    return [headers, ...rows].map(row => row.join(',')).join('\\n');\n}\n\nfunction downloadCSV(content, filename) {\n    const blob = new Blob([content], { type: 'text\/csv;charset=utf-8;' });\n    const link = document.createElement('a');\n    const url = URL.createObjectURL(blob);\n    link.setAttribute('href', url);\n    link.setAttribute('download', filename);\n    link.style.visibility = 'hidden';\n    document.body.appendChild(link);\n    link.click();\n    document.body.removeChild(link);\n    showToast('File CSV esportato correttamente', 'success');\n}\n\nfunction stampaQuaderno() {\n    window.print();\n}\n\n\/\/ Additional functions for other sections would be implemented similarly\nfunction aggiungiIrrigazione() {\n    \/\/ Implementation similar to other add functions\n    showToast('Funzione irrigazioni in sviluppo', 'info');\n}\n\nfunction aggiungiRaccolta() {\n    \/\/ Implementation similar to other add functions\n    showToast('Funzione raccolte in sviluppo', 'info');\n}\n\nfunction aggiungiControllo() {\n    \/\/ Implementation similar to other add functions\n    showToast('Funzione controlli in sviluppo', 'info');\n}\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Registre \u00e9lectronique pour la gestion des activit\u00e9s agricoles ?? Registre ?? Parcelles ?? Traitements ?? Fertilisations ?? Irrigations ?? Collections ?? Entrep\u00f4t ?? Registre des soci\u00e9t\u00e9s Contr\u00f4les Nom de l'entreprise * Code de l'entreprise\/CUAA * Adresse de contact technique Administration centrale commune Province CAP Code cadastral T\u00e9l\u00e9phone Courriel Date de compilation Enregistrer le registre Parcelles cultiv\u00e9es Ajouter [...]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-7315","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Quaderno di campagna - Vigneto Sicuro<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vignetosicuro.it\/fr\/quaderno-di-campagna\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Quaderno di campagna - Vigneto Sicuro\" \/>\n<meta property=\"og:description\" content=\"Quaderno di Campagna Registro elettronico per la gestione delle attivit\u00e0 agricole \ud83c\udfe2 Anagrafica \ud83c\udf3e Parcelle \ud83d\ude9c Trattamenti \ud83c\udf31 Concimazioni \ud83d\udca7 Irrigazioni \ud83c\udf3d Raccolte \ud83d\udce6 Magazzino \ud83d\udccb Controlli Anagrafica Aziendale Ragione Sociale * Codice Azienda\/CUAA * Referente Tecnico Indirizzo Sede Comune Provincia CAP Codice Catastale Telefono Email Data Compilazione Salva Anagrafica Registro Parcelle Coltivate Aggiungi Parcella [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vignetosicuro.it\/fr\/quaderno-di-campagna\/\" \/>\n<meta property=\"og:site_name\" content=\"Vigneto Sicuro\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-23T10:44:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vignetosicuro.it\\\/quaderno-di-campagna\\\/\",\"url\":\"https:\\\/\\\/vignetosicuro.it\\\/quaderno-di-campagna\\\/\",\"name\":\"Quaderno di campagna - Vigneto Sicuro\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vignetosicuro.it\\\/#website\"},\"datePublished\":\"2025-06-23T10:42:03+00:00\",\"dateModified\":\"2025-06-23T10:44:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vignetosicuro.it\\\/quaderno-di-campagna\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vignetosicuro.it\\\/quaderno-di-campagna\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vignetosicuro.it\\\/quaderno-di-campagna\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vignetosicuro.it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quaderno di campagna\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vignetosicuro.it\\\/#website\",\"url\":\"https:\\\/\\\/vignetosicuro.it\\\/\",\"name\":\"Vigneto Sicuro\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/vignetosicuro.it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vignetosicuro.it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vignetosicuro.it\\\/#organization\",\"name\":\"Vigneto Sicuro\",\"url\":\"https:\\\/\\\/vignetosicuro.it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/vignetosicuro.it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/vignetosicuro.it\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Raggruppa-376.svg\",\"contentUrl\":\"https:\\\/\\\/vignetosicuro.it\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/Raggruppa-376.svg\",\"width\":239,\"height\":58,\"caption\":\"Vigneto Sicuro\"},\"image\":{\"@id\":\"https:\\\/\\\/vignetosicuro.it\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Quaderno di campagna - Vigneto Sicuro","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vignetosicuro.it\/fr\/quaderno-di-campagna\/","og_locale":"fr_FR","og_type":"article","og_title":"Quaderno di campagna - Vigneto Sicuro","og_description":"Quaderno di Campagna Registro elettronico per la gestione delle attivit\u00e0 agricole \ud83c\udfe2 Anagrafica \ud83c\udf3e Parcelle \ud83d\ude9c Trattamenti \ud83c\udf31 Concimazioni \ud83d\udca7 Irrigazioni \ud83c\udf3d Raccolte \ud83d\udce6 Magazzino \ud83d\udccb Controlli Anagrafica Aziendale Ragione Sociale * Codice Azienda\/CUAA * Referente Tecnico Indirizzo Sede Comune Provincia CAP Codice Catastale Telefono Email Data Compilazione Salva Anagrafica Registro Parcelle Coltivate Aggiungi Parcella [&hellip;]","og_url":"https:\/\/vignetosicuro.it\/fr\/quaderno-di-campagna\/","og_site_name":"Vigneto Sicuro","article_modified_time":"2025-06-23T10:44:54+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vignetosicuro.it\/quaderno-di-campagna\/","url":"https:\/\/vignetosicuro.it\/quaderno-di-campagna\/","name":"Quaderno di campagna - Vigneto Sicuro","isPartOf":{"@id":"https:\/\/vignetosicuro.it\/#website"},"datePublished":"2025-06-23T10:42:03+00:00","dateModified":"2025-06-23T10:44:54+00:00","breadcrumb":{"@id":"https:\/\/vignetosicuro.it\/quaderno-di-campagna\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vignetosicuro.it\/quaderno-di-campagna\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vignetosicuro.it\/quaderno-di-campagna\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vignetosicuro.it\/"},{"@type":"ListItem","position":2,"name":"Quaderno di campagna"}]},{"@type":"WebSite","@id":"https:\/\/vignetosicuro.it\/#website","url":"https:\/\/vignetosicuro.it\/","name":"Vigneto Sicuro","description":"","publisher":{"@id":"https:\/\/vignetosicuro.it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vignetosicuro.it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/vignetosicuro.it\/#organization","name":"Vigneto Sicuro","url":"https:\/\/vignetosicuro.it\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/vignetosicuro.it\/#\/schema\/logo\/image\/","url":"https:\/\/vignetosicuro.it\/wp-content\/uploads\/2023\/03\/Raggruppa-376.svg","contentUrl":"https:\/\/vignetosicuro.it\/wp-content\/uploads\/2023\/03\/Raggruppa-376.svg","width":239,"height":58,"caption":"Vigneto Sicuro"},"image":{"@id":"https:\/\/vignetosicuro.it\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/vignetosicuro.it\/fr\/wp-json\/wp\/v2\/pages\/7315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vignetosicuro.it\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vignetosicuro.it\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vignetosicuro.it\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vignetosicuro.it\/fr\/wp-json\/wp\/v2\/comments?post=7315"}],"version-history":[{"count":7,"href":"https:\/\/vignetosicuro.it\/fr\/wp-json\/wp\/v2\/pages\/7315\/revisions"}],"predecessor-version":[{"id":7323,"href":"https:\/\/vignetosicuro.it\/fr\/wp-json\/wp\/v2\/pages\/7315\/revisions\/7323"}],"wp:attachment":[{"href":"https:\/\/vignetosicuro.it\/fr\/wp-json\/wp\/v2\/media?parent=7315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}