function initSubmenuForm() { // Accéder aux informations stockées du parcours const parcours = JSON.parse(sessionStorage.getItem('parcours')); } // Exposer initSubmenuForm globalement pour y accéder depuis l'extérieur window.initSubmenuForm = initSubmenuForm;// Module IIFE pour éviter la pollution de l'espace global (function () { // Variables globales du module let parcours, contrat, client, intermediaire; // Initialisation des tag pour select var tagAnimauxVivants = false; var tagMultimodal = false; var tagDemenageur = false; var tagDemenageurParticulier = false; var tagDemenageurParticulierDeclaree = false; var tagDemenageurParticulierAdvalorem = false; var tagGardeMeubles = false; var tagVoiturier = false; var tagDemenageurEntrInter = false; // Initialisation du formulaire et des données function init() { // Materialize init select var select = document.querySelectorAll('select'); M.FormSelect.init(select); // Materialize init Modal var modals = document.querySelectorAll('.modal'); M.Modal.init(modals); // Accéder aux informations stockées du parcours parcours = JSON.parse(sessionStorage.getItem('parcours')); contrat = JSON.parse(sessionStorage.getItem('contrat')); client = contrat?.["@expand"]?.client || null; intermediaire = contrat?.["@expand"]?.intermediaire || null; rc = contrat?.["@expand"]?.enCours || null; console.log("Initialisation pour formulaire projet :", parcours); // Appel des différentes fonctions d'initialisation setupEventListeners(); populateFormData(); updateSubmitButtonState('projetForm'); } // Configuration des écouteurs d'événements function setupEventListeners() { document.getElementById('projetFormBtn').addEventListener('click', handleSubmitForm); document.getElementById('loadHistoriqueBtn').addEventListener('click', function () { handleLoadHistoriqueBtn(); }); document.getElementById('activity-selector').addEventListener('change', function () { handleActivitySelection(); }); document.getElementById('marchandise-selector').addEventListener('change', function () { handleMarchandiseSelection(); }); document.getElementById('garantieRCC-selector').addEventListener('change', function () { handleGarantieRCCSelection(); }); document.getElementById('garantieRCE-selector').addEventListener('change', function () { handleGarantieRCESelection(); }); document.getElementById('choixRCE').addEventListener('change', function () { if (document.getElementById("choixRCE").checked) { document.getElementById('garantieRCE').style.display = 'block'; document.getElementById('RCE1').style.display = ''; document.getElementById('RCE2').style.display = ''; } else { document.getElementById('garantieRCE').style.display = 'none'; document.getElementById('RCE1').style.display = 'none'; document.getElementById('RCE2').style.display = 'none'; document.getElementById('cotRCEHT').value = ''; document.getElementById('cotRCETTC').value = ''; document.getElementById('tauxRCEHT').value = ''; document.getElementById('tauxRCETTC').value = ''; } calcCotTotal(); }); document.getElementById('btnAddAdditionnel').addEventListener('click', function () { const nomValue = document.getElementById('nomAdditionnel').value || 'Non défini'; const adresseValue = document.getElementById('adresseAditionnel').value || 'Non défini'; const siretValue = document.getElementById('siretAdditionnel').value || 'Non défini'; addRowAdditionnel(nomValue, adresseValue, siretValue); }); document.getElementById('btnAddVehicule').addEventListener('click', function () { const marqueValue = document.getElementById('marqueVehicule').value || 'Non défini'; const genreValue = document.getElementById('genreVehicule').value || 'Non défini'; const typeValue = document.getElementById('typeVehicule').value || 'Non défini'; const immatValue = document.getElementById('immatVehicule').value || 'Non défini'; const capitalValue = document.getElementById('capitalVehicule').value || 'Non défini'; addRowVehicule(marqueValue, genreValue, typeValue, immatValue, capitalValue); }); document.getElementById('btnAdvaloTerrestre').addEventListener('click', function () { document.getElementById('divAdvaloTerrestre').style.display = "block"; document.getElementById('divAdvaloMultimodal').style.display = "none"; document.getElementById('divAdvaloAerien').style.display = "none"; }); document.getElementById('btnAdvaloMultimodal').addEventListener('click', function () { document.getElementById('divAdvaloTerrestre').style.display = "none"; document.getElementById('divAdvaloMultimodal').style.display = "block"; document.getElementById('divAdvaloAerien').style.display = "none"; }); document.getElementById('btnAdvaloAerien').addEventListener('click', function () { document.getElementById('divAdvaloTerrestre').style.display = "none"; document.getElementById('divAdvaloMultimodal').style.display = "none"; document.getElementById('divAdvaloAerien').style.display = "block"; }); document.getElementById('switchPJ').addEventListener('change', function () { if (document.getElementById("switchPJ").checked) { document.getElementById('PJ1').style.display = ''; document.getElementById('PJ2').style.display = ''; } else { document.getElementById('PJ1').style.display = 'none'; document.getElementById('PJ2').style.display = 'none'; document.getElementById('cotPJHT').value = ''; document.getElementById('cotPJTTC').value = ''; } calcCotTotal(); }); document.getElementById('btnMondeEntier').addEventListener('click', function () { document.getElementById('zone1').checked = true; document.getElementById('zone1').disabled = true; document.getElementById('zone2').checked = true; document.getElementById('zone2').disabled = true; document.getElementById('zone3').checked = true; document.getElementById('zone4').checked = true; document.getElementById('zone5').checked = true; document.getElementById('zone6').checked = true; handleGrAdvalo(); }); document.getElementById('btnReset').addEventListener('click', function () { document.getElementById('zone1').checked = false; document.getElementById('zone1').disabled = false; document.getElementById('zone2').checked = false; document.getElementById('zone2').disabled = false; document.getElementById('zone3').checked = false; document.getElementById('zone4').checked = false; document.getElementById('zone5').checked = false; document.getElementById('zone6').checked = false; handleGrAdvalo(); }); document.getElementById('btnZone1').addEventListener('click', function () { const elem = document.getElementById('modalZone1'); const instance = M.Modal.getInstance(elem); instance.open(); }); document.getElementById('btnZone2').addEventListener('click', function () { const elem = document.getElementById('modalZone2'); const instance = M.Modal.getInstance(elem); instance.open(); }); document.getElementById('btnZone3').addEventListener('click', function () { const elem = document.getElementById('modalZone3'); const instance = M.Modal.getInstance(elem); instance.open(); }); document.getElementById('btnZone4').addEventListener('click', function () { const elem = document.getElementById('modalZone4'); const instance = M.Modal.getInstance(elem); instance.open(); }); document.getElementById('btnZone5').addEventListener('click', function () { const elem = document.getElementById('modalZone5'); const instance = M.Modal.getInstance(elem); instance.open(); }); document.getElementById('btnZone6').addEventListener('click', function () { const elem = document.getElementById('modalZone6'); const instance = M.Modal.getInstance(elem); instance.open(); }); document.getElementById('btnZone7').addEventListener('click', function () { const elem = document.getElementById('modalZoneExclus'); const instance = M.Modal.getInstance(elem); instance.open(); }); document.getElementById('zone1').addEventListener('click', function () { handleGrAdvalo(); }); document.getElementById('zone2').addEventListener('click', function () { if (document.getElementById('zone2').checked == true) { document.getElementById('zone1').checked = true; document.getElementById('zone1').disabled = true; } else if (document.getElementById('zone2').checked == false) { document.getElementById('zone1').checked = true; document.getElementById('zone1').disabled = false; } handleGrAdvalo(); }); document.getElementById('zone3').addEventListener('click', function () { if (document.getElementById('zone3').checked == true) { document.getElementById('zone2').checked = true; document.getElementById('zone1').checked = true; document.getElementById('zone2').disabled = true; document.getElementById('zone1').disabled = true; } else if (document.getElementById('zone3').checked == false) { document.getElementById('zone1').checked = true; document.getElementById('zone1').disabled = true; document.getElementById('zone2').checked = true; document.getElementById('zone2').disabled = false; } handleGrAdvalo(); }); document.getElementById('zone4').addEventListener('click', function () { handleGrAdvalo(); }); document.getElementById('zone5').addEventListener('click', function () { handleGrAdvalo(); }); document.getElementById('zone6').addEventListener('click', function () { handleGrAdvalo(); }); var radioButtonsCot = document.getElementsByName('cotisation'); for (var i = 0; i < radioButtonsCot.length; i++) { radioButtonsCot[i].addEventListener('change', function () { if (this.value == "forfaitaire") { document.getElementById("checkVehicules").style.display = 'block'; document.getElementById("colTauxAjustement").style.display = 'none'; document.getElementById("colCA").style.display = 'none'; document.getElementById("colCotMini").style.display = 'none'; document.getElementById("colTypeCot").classList.remove('s4'); document.getElementById("colTypeCot").classList.add('s6'); document.getElementById("colTypeCot").style.margin = "0 auto"; document.getElementById("colTypeCot").style.float = "none"; document.getElementById("colDetailCot").classList.remove('s6'); document.getElementById("colDetailCot").classList.add('s12'); } else if (this.value == "revisable") { document.getElementById("checkVehicules").style.display = 'none'; document.getElementById("colTauxAjustement").style.display = 'block'; document.getElementById("colCA").style.display = 'block'; document.getElementById("colCotMini").style.display = 'block'; document.getElementById("colTypeCot").classList.remove('s6'); document.getElementById("colTypeCot").classList.add('s4'); document.getElementById("colTypeCot").style.margin = ""; document.getElementById("colTypeCot").style.float = "left"; document.getElementById("colDetailCot").classList.remove('s12'); document.getElementById("colDetailCot").classList.add('s6'); } }); }; var radioButtonsFract = document.getElementsByName('fractionnement'); for (var i = 0; i < radioButtonsFract.length; i++) { radioButtonsFract[i].addEventListener('change', function () { if (this.value == "mensuel") { document.getElementById("cotFraisHT").value = 36.00; document.getElementById("cotFraisTTC").value = 36.00; calcCotTotal(); } else if (this.value == "trimestriel") { document.getElementById("cotFraisHT").value = 144.00; document.getElementById("cotFraisTTC").value = 144.00; calcCotTotal(); } else if (this.value == "semestriel") { document.getElementById("cotFraisHT").value = 72.00; document.getElementById("cotFraisTTC").value = 72.00; calcCotTotal(); } else if (this.value == "annuel") { document.getElementById("cotFraisHT").value = 36.00; document.getElementById("cotFraisTTC").value = 36.00; calcCotTotal(); } }); }; document.getElementById('btnNullDateDebut').addEventListener('click', function () { document.getElementById('dateEffet').value = "00/00/0000"; validateField('dateEffet', true); updateSubmitButtonState('projetForm'); }); document.getElementById('btnNullDateEcheance').addEventListener('click', function () { document.getElementById('dateEcheance').value = "00/00"; validateField('dateEcheance', true); updateSubmitButtonState('projetForm'); }); document.getElementById('btnNullDateFin').addEventListener('click', function () { document.getElementById('dateFin').value = "00/00/0000"; validateField('dateFin', true); updateSubmitButtonState('projetForm'); }); document.getElementById('btnModalDate').addEventListener('click', function () { const elem = document.getElementById('modalDate'); const instance = M.Modal.getInstance(elem); instance.open(); }); document.getElementById('btnGarContenantConfie').addEventListener('click', function () { const elem = document.getElementById('modalContenantConfie'); const instance = M.Modal.getInstance(elem); instance.open(); }); document.getElementById('speClauses').addEventListener('click', function () { const url = `/download/CLAUSES_PLATEFORME_RC_TRANSPORT_VALIDE_AU_26_02_2025.docx`; fetch(url) .then(response => response.blob()) .then(blob => { const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = 'CLAUSES_PLATEFORME_RC_TRANSPORT_VALIDE_AU_26_02_2025'; link.click(); }) .catch(error => console.error('Error downloading file:', error)); }); document.getElementById('dateEffet').addEventListener('input', function () { validateField('dateEffet', true); updateSubmitButtonState('projetForm'); }); document.getElementById('dateFin').addEventListener('input', function () { validateField('dateFin', true); updateSubmitButtonState('projetForm'); }); document.getElementById('dateEcheance').addEventListener('input', function () { validateField('dateEcheance', true); updateSubmitButtonState('projetForm'); }); document.getElementById('CA').addEventListener('input', function () { validateField('CA', true); updateSubmitButtonState('projetForm'); calcCotFromTauxCA('tauxRCCHT', 'cotRCCHT'); calcAddTaxe('cotRCCHT', 0, 'cotRCCTTC'); calcCotFromTauxCA('tauxRCEHT', 'cotRCEHT'); calcAddTaxe('cotRCEHT', 0.09, 'cotRCETTC'); calcCotIrreductible(); calcCotTotal(); }); document.getElementById('cotisationIrreductible').addEventListener('input', function () { validateField('cotisationIrreductible', true); updateSubmitButtonState('projetForm'); }); document.getElementById('tauxRCCHT').addEventListener('input', function () { validateField('tauxRCCHT', true); updateSubmitButtonState('projetForm'); calcAddTaxe('tauxRCCHT', 0, 'tauxRCCTTC'); calcTauxTotal(); calcCotFromTauxCA('tauxRCCHT', 'cotRCCHT'); calcAddTaxe('cotRCCHT', 0, 'cotRCCTTC'); calcCotIrreductible(); calcCotTotal(); }); document.getElementById('tauxRCCTTC').addEventListener('input', function () { validateField('tauxRCCTTC', true); updateSubmitButtonState('projetForm'); calcSubTaxe('tauxRCCHT', 0, 'tauxRCCTTC'); calcTauxTotal(); calcCotFromTauxCA('tauxRCCHT', 'cotRCCHT'); calcAddTaxe('cotRCCHT', 0, 'cotRCCTTC'); calcCotIrreductible(); calcCotTotal(); }); document.getElementById('tauxRCEHT').addEventListener('input', function () { validateField('tauxRCEHT', true); updateSubmitButtonState('projetForm'); calcAddTaxe('tauxRCEHT', 0.09, 'tauxRCETTC'); calcTauxTotal(); calcCotFromTauxCA('tauxRCEHT', 'cotRCEHT'); calcAddTaxe('cotRCEHT', 0.09, 'cotRCETTC'); calcCotIrreductible(); calcCotTotal(); }); document.getElementById('tauxRCETTC').addEventListener('input', function () { validateField('tauxRCETTC', true); updateSubmitButtonState('projetForm'); calcSubTaxe('tauxRCEHT', 0.09, 'tauxRCETTC'); calcTauxTotal(); calcCotFromTauxCA('tauxRCEHT', 'cotRCEHT'); calcAddTaxe('cotRCEHT', 0.09, 'cotRCETTC'); calcCotIrreductible(); calcCotTotal(); }); document.getElementById('tauxTotalHT').addEventListener('input', function () { validateField('tauxTotalHT', true); updateSubmitButtonState('projetForm'); }); document.getElementById('tauxTotalTTC').addEventListener('input', function () { validateField('tauxTotalTTC', true); updateSubmitButtonState('projetForm'); }); document.getElementById('cotRCCHT').addEventListener('input', function () { validateField('cotRCCHT', true); updateSubmitButtonState('projetForm'); calcAddTaxe('cotRCCHT', 0, 'cotRCCTTC'); calcCotTotal(); }); document.getElementById('cotRCCTTC').addEventListener('input', function () { validateField('cotRCCTTC', true); updateSubmitButtonState('projetForm'); calcSubTaxe('cotRCCHT', 0, 'cotRCCTTC'); calcCotTotal(); }); document.getElementById('cotRCEHT').addEventListener('input', function () { validateField('cotRCEHT', true); updateSubmitButtonState('projetForm'); calcAddTaxe('cotRCEHT', 0.09, 'cotRCETTC'); calcCotTotal(); }); document.getElementById('cotRCETTC').addEventListener('input', function () { validateField('cotRCETTC', true); updateSubmitButtonState('projetForm'); calcSubTaxe('cotRCEHT', 0.09, 'cotRCETTC'); calcCotTotal(); }); document.getElementById('cotPJHT').addEventListener('input', function () { validateField('cotPJHT', true); updateSubmitButtonState('projetForm'); calcAddTaxe('cotPJHT', 0.134, 'cotPJTTC'); calcCotTotal(); }); document.getElementById('cotPJTTC').addEventListener('input', function () { validateField('cotPJTTC', true); updateSubmitButtonState('projetForm'); calcSubTaxe('cotPJHT', 0.134, 'cotPJTTC'); calcCotTotal(); }); document.getElementById('cotFraisHT').addEventListener('input', function () { validateField('cotFraisHT', true); updateSubmitButtonState('projetForm'); calcAddTaxe('cotFraisHT', 0, 'cotFraisTTC'); calcCotTotal(); }); document.getElementById('cotFraisTTC').addEventListener('input', function () { validateField('cotFraisTTC', true); updateSubmitButtonState('projetForm'); calcSubTaxe('cotFraisHT', 0, 'cotFraisTTC'); calcCotTotal(); }); document.getElementById('cotTotalHT').addEventListener('input', function () { validateField('cotTotalHT', true); updateSubmitButtonState('projetForm'); }); document.getElementById('cotTotalTTC').addEventListener('input', function () { validateField('cotTotalTTC', true); updateSubmitButtonState('projetForm'); }); document.getElementById('activity-selector').addEventListener('change', function () { const currentSelection = Array.from(this.selectedOptions).map(option => option.value); if (currentSelection.includes("commissionnaire-multimodal")) { if (tagMultimodal == false) { M.toast({html: "Monde entier pour l'activité commissionnaire de transports multimodal"}) document.getElementById("btnAdvaloMultimodal").style.display = 'block'; document.getElementById("btnAdvaloAerien").style.display = 'block'; document.getElementById("btnAdvaloTerrestre").style.display = 'block'; document.getElementById('divAdvaloTerrestre').style.display = "none"; document.getElementById('divAdvaloAerien').style.display = "none"; document.getElementById('divAdvaloMultimodal').style.display = "block"; } tagMultimodal = true; } else { document.getElementById("btnAdvaloMultimodal").style.display = 'none'; document.getElementById("btnAdvaloAerien").style.display = 'none'; document.getElementById("btnAdvaloTerrestre").style.display = 'none'; document.getElementById('divAdvaloTerrestre').style.display = "block"; document.getElementById('divAdvaloAerien').style.display = "none"; document.getElementById('divAdvaloMultimodal').style.display = "none"; tagMultimodal = false; } if (currentSelection.includes("demenageur-particulier") || currentSelection.includes("demenageur-particulier-dommage") || currentSelection.includes("demenageur-particulier-advalorem") || currentSelection.includes("demenageur-entreprise") || currentSelection.includes("demenageur-interne")) { if (tagDemenageur == false) { document.getElementById('marchandise-selector').querySelector('option[value="roulant-demenagement"]').selected = true; document.getElementById('marchandise-selector').querySelector('option[value="mobilier-usages"]').selected = true; document.getElementById('marchandise-selector').querySelector('option[value="ordinaire"]').selected = false; document.getElementById('marchandise-selector').dispatchEvent(new Event('change')); } tagDemenageur = true; } else { if (!(currentSelection.includes(("demenageur-particulier" || "demenageur-particulier-dommage" || "demenageur-particulier-advalorem") && "demenageur-entreprise" && "demenageur-interne"))) { document.getElementById('marchandise-selector').querySelector('option[value="roulant-demenagement"]').selected = false; document.getElementById('marchandise-selector').querySelector('option[value="mobilier-usages"]').selected = false; document.getElementById('marchandise-selector').querySelector('option[value="ordinaire"]').selected = true; document.getElementById('marchandise-selector').dispatchEvent(new Event('change')); tagDemenageur = false; } } if (currentSelection.includes("garde-meubles")) { if (tagGardeMeubles == false) { document.getElementById('activity-selector').querySelector('option[value="demenageur-particulier"]').selected = true; tagGardeMeubles = true; document.getElementById('activity-selector').dispatchEvent(new Event('change')); document.getElementById('selected-demenageur-error').style.display = "block"; } } else { if (!(currentSelection.includes("garde-meubles"))) { document.getElementById('selected-demenageur-error').style.display = "none"; tagGardeMeubles = false; } } if (currentSelection.includes("demenageur-particulier")) { if (tagDemenageurParticulier == false) { document.getElementById('activity-selector').querySelector('option[value="demenageur-particulier-dommage"]').selected = false; document.getElementById('activity-selector').querySelector('option[value="demenageur-particulier-advalorem"]').selected = false; tagDemenageurParticulier = true; document.getElementById('activity-selector').dispatchEvent(new Event('change')); } } else { tagDemenageurParticulier = false; } if (currentSelection.includes("demenageur-particulier-dommage")) { if (tagDemenageurParticulierDeclaree == false) { document.getElementById('activity-selector').querySelector('option[value="demenageur-particulier"]').selected = false; document.getElementById('activity-selector').querySelector('option[value="demenageur-particulier-advalorem"]').selected = false; tagDemenageurParticulierDeclaree = true; document.getElementById('activity-selector').dispatchEvent(new Event('change')); } } else { tagDemenageurParticulierDeclaree = false; } if (currentSelection.includes("demenageur-particulier-advalorem")) { if (tagDemenageurParticulierAdvalorem == false) { document.getElementById('activity-selector').querySelector('option[value="demenageur-particulier-dommage"]').selected = false; document.getElementById('activity-selector').querySelector('option[value="demenageur-particulier"]').selected = false; tagDemenageurParticulierAdvalorem = true; tagDemenageurParticulierDeclaree = false; tagDemenageurParticulier = false; document.getElementById('activity-selector').dispatchEvent(new Event('change')); } } else { tagDemenageurParticulierAdvalorem = false; } if (currentSelection.includes("demenageur-entreprise")) { if (tagDemenageurEntrInter == false) { document.getElementById('activity-selector').querySelector('option[value="demenageur-interne"]').selected = true; tagDemenageurEntrInter = true; document.getElementById('activity-selector').dispatchEvent(new Event('change')); document.getElementById('selected-demenageur-entreprise-error').style.display = "block"; } } else { document.getElementById('selected-demenageur-entreprise-error').style.display = "none"; tagDemenageurEntrInter = false; } if (currentSelection.includes("entrepositaire-depositaire") || currentSelection.includes("prestataire-logistique") || currentSelection.includes("manutentionnaire-levageur")) { if (tagVoiturier == false) { document.getElementById('activity-selector').querySelector('option[value="voiturier"]').selected = true; tagVoiturier = true; document.getElementById('activity-selector').dispatchEvent(new Event('change')); document.getElementById('selected-voiturier-error').style.display = "block"; } } else { if (!(currentSelection.includes("entrepositaire-depositaire" && "prestataire-logistique" && "manutentionnaire-levageur"))) { tagVoiturier = false; document.getElementById('selected-voiturier-error').style.display = "none"; } } if (currentSelection.length == 1) { document.getElementById('activity-selector').querySelector('option[value="voiturier"]').selected = true; document.getElementById('activity-selector').querySelector('option[value="loueur"]').selected = true; document.getElementById('activity-selector').dispatchEvent(new Event('change')); M.FormSelect.init(document.querySelectorAll('select')); document.getElementById('mini-activity-error').style.display = "block"; } else { document.getElementById("mini-activity-error").style.display = "none"; } handleGrAdvalo(); }); document.getElementById('marchandise-selector').addEventListener('change', function () { const currentSelection = Array.from(this.selectedOptions).map(option => option.value); if (currentSelection.includes("beton")) { document.getElementById("choixRCE").checked = false; document.getElementById('garantieRCE').style.display = 'none'; document.getElementById('RCE1').style.display = 'none'; document.getElementById('RCE2').style.display = 'none'; document.getElementById('selected-RCE2-error').style.display = "block"; } else { if (!(currentSelection.includes("beton"))) { document.getElementById('selected-RCE2-error').style.display = "none"; } } if (currentSelection.length == 1) { document.getElementById('marchandise-selector').querySelector('option[value="ordinaire"]').selected = true; document.getElementById('marchandise-selector').dispatchEvent(new Event('change')); document.getElementById("mini-marchandise-error").style.display = "block"; } else { document.getElementById("mini-marchandise-error").style.display = "none"; } if (currentSelection.includes("animaux-vivant")) { if (tagAnimauxVivants == false) { // Retire le display select en cas d'animaux vivants M.FormSelect.init(document.querySelectorAll('select')); const elem = document.getElementById('modalAnimauxVivants'); const instance = M.Modal.getInstance(elem); instance.open(); } tagAnimauxVivants = true; } else { if (!(currentSelection.includes("animaux-vivant"))) { tagAnimauxVivants = false; } } handleGrAdvalo(); }); document.getElementById('garantieRCC-selector').addEventListener('change', function () { const currentSelection = Array.from(this.selectedOptions).map(option => option.value); if (currentSelection.includes("contenant-confie")) { document.getElementById('garContenantConfie').style.display = "block"; } else { if (!(currentSelection.includes("contenant-confie"))) { document.getElementById('garContenantConfie').style.display = "none"; } } }); } // Handle event spécifique au limite de garantie activité window.handleInputActivity = function (inputId) { validateField(inputId, true); updateSubmitButtonState('projetForm'); }; // Peupler le formulaire avec les données function populateFormData() { //Poupulate select historique if (!contrat.historique) { document.getElementById('historiqueDiv').style.display = "none"; } else { document.getElementById('historiqueDiv').style.display = "block"; const idSelect = document.getElementById('idSelect'); contrat.historique.forEach(function (item) { var option = document.createElement('option'); option.value = item.id; option.textContent = item.type + " " + item.produit + " - " + item.date + " - " + item.heure; if (item.nom != undefined && item.prenom != undefined) { option.textContent += " - " + item.nom + " " + item.prenom; } idSelect.appendChild(option); }); M.FormSelect.init(idSelect); } // Populate par défaut Voiturier / Loueur if (!rc) { document.getElementById('activity-selector').querySelector('option[value="voiturier"]').selected = true; document.getElementById('activity-selector').querySelector('option[value="loueur"]').selected = true; document.getElementById('activity-selector').dispatchEvent(new Event('change')); } // Populate assurés additionnel if (!rc || !rc.assureAdditionnel || Object.keys(rc.assureAdditionnel).length === 0) { console.log("Le JSON est vide, pas d'assurés additionnels à pré-remplir."); } else { document.getElementById('additionel').checked = true; document.getElementById('checkAdditionnel').style.display = "block"; for (let i = 0; i < rc.assureAdditionnel.length; i++) { const row = rc.assureAdditionnel[i]; addRowAdditionnel(row.nom, row.adresse, row.siret); } } // Populate activite const activitySelector = document.getElementById('activity-selector'); if (rc.actVoiturier) { activitySelector.querySelector('option[value="voiturier"]').selected = true; document.getElementById("select-voiturier").dataset.defaultValue = rc.valueActVoiturier; }; if (rc.actLoueur) { activitySelector.querySelector('option[value="loueur"]').selected = true; document.getElementById("select-loueur").dataset.defaultValue = rc.valueActLoueur; }; if (rc.actMultimodal) { tagMultimodal = true; activitySelector.querySelector('option[value="commissionnaire-multimodal"]').selected = true; document.getElementById("select-commissionnaire-multimodal").dataset.defaultValue = rc.valueActMultimodal; document.getElementById("btnAdvaloMultimodal").style.display = 'block'; document.getElementById("btnAdvaloAerien").style.display = 'block'; document.getElementById("btnAdvaloTerrestre").style.display = 'block'; document.getElementById('divAdvaloTerrestre').style.display = "none"; document.getElementById('divAdvaloAerien').style.display = "none"; document.getElementById('divAdvaloMultimodal').style.display = "block"; }; if (rc.actDouane) { activitySelector.querySelector('option[value="représentant-douane"]').selected = true; document.getElementById("select-représentant-douane").dataset.defaultValue = rc.valueActDouane; }; if (rc.actDemPar) { activitySelector.querySelector('option[value="demenageur-particulier"]').selected = true; document.getElementById("select-demenageur-particulier").dataset.defaultValue = rc.valueActDemPar; } if (rc.actDemParDom) { activitySelector.querySelector('option[value="demenageur-particulier-dommage"]').selected = true; document.getElementById("select-demenageur-particulier-dommage").dataset.defaultValue = rc.valueActDemParDom; } if (rc.actDemParAdv) { activitySelector.querySelector('option[value="demenageur-particulier-advalorem"]').selected = true; document.getElementById("select-demenageur-particulier-advalorem").dataset.defaultValue = rc.valueActDemParAdv; } if (rc.actDemEntr) { activitySelector.querySelector('option[value="demenageur-entreprise"]').selected = true; document.getElementById("select-demenageur-entreprise").dataset.defaultValue = rc.valueActDemEntr; } if (rc.actDemInterne) { activitySelector.querySelector('option[value="demenageur-interne"]').selected = true; document.getElementById("select-demenageur-interne").dataset.defaultValue = rc.valueActDemInterne; } if (rc.actGardeMeuble) { activitySelector.querySelector('option[value="garde-meubles"]').selected = true; document.getElementById("select-garde-meubles").dataset.defaultValue = rc.valueActGardeMeuble; } if (rc.actEntDep) { activitySelector.querySelector('option[value="entrepositaire-depositaire"]').selected = true; document.getElementById("select-entrepositaire-depositaire").dataset.defaultValue = rc.valueActEntDep; } if (rc.actPrestaLog) { activitySelector.querySelector('option[value="prestataire-logistique"]').selected = true; document.getElementById("select-prestataire-logistique").dataset.defaultValue = rc.valueActPrestaLog; } if (rc.actLevageur) { activitySelector.querySelector('option[value="manutentionnaire-levageur"]').selected = true; document.getElementById("select-manutentionnaire-levageur").dataset.defaultValue = rc.valueActLevageur; } if (rc.actTransitaire) { activitySelector.querySelector('option[value="transitaire"]').selected = true; document.getElementById("select-transitaire").dataset.defaultValue = rc.valueActTransitaire; } document.getElementById('activity-selector').dispatchEvent(new Event('change')); // Populate marchandises const marchandiseSelector = document.getElementById('marchandise-selector'); if (rc.marOrdinaire) { marchandiseSelector.querySelector('option[value="ordinaire"]').selected = true; }; if (rc.marRoulant) { marchandiseSelector.querySelector('option[value="roulant"]').selected = true; }; if (rc.marEngins) { marchandiseSelector.querySelector('option[value="engins-chantier-agricole"]').selected = true; }; if (rc.marRoulantDem) { marchandiseSelector.querySelector('option[value="roulant-demenagement"]').selected = true; }; if (rc.marMobilerUsag) { marchandiseSelector.querySelector('option[value="mobilier-usages"]').selected = true; }; if (rc.marPerissable) { marchandiseSelector.querySelector('option[value="perissable-temperature-dirigee"]').selected = true; }; if (rc.marAnimaux) { tagAnimauxVivants = true; marchandiseSelector.querySelector('option[value="animaux-vivant"]').selected = true; }; if (rc.marCiterne) { marchandiseSelector.querySelector('option[value="citerne"]').selected = true; }; if (rc.marBeton) { marchandiseSelector.querySelector('option[value="beton"]').selected = true; }; if (rc.marExceptionnels) { marchandiseSelector.querySelector('option[value="exceptionnels"]').selected = true; }; if (rc.marVrac) { marchandiseSelector.querySelector('option[value="vrac"]').selected = true; }; document.getElementById('marchandise-selector').dispatchEvent(new Event('change')); // Populate territorialité if (rc.zone1) { document.getElementById("zone1").checked = true }; if (rc.zone2) { document.getElementById("zone2").checked = true; document.getElementById("zone1").checked = true; document.getElementById("zone1").disabled = true; }; if (rc.zone3) { document.getElementById("zone3").checked = true; document.getElementById("zone2").checked = true; document.getElementById("zone2").disabled = true; document.getElementById("zone1").checked = true; document.getElementById("zone1").disabled = true; }; if (rc.zone4) { document.getElementById("zone4").checked = true }; if (rc.zone5) { document.getElementById("zone5").checked = true }; if (rc.zone6) { document.getElementById("zone6").checked = true }; // Populate extensions de garantie RCC const garantieRCCSelector = document.getElementById('garantieRCC-selector'); if (rc.extRCCModifCalArrim) { garantieRCCSelector.querySelector('option[value="modif-calage-arrimage"]').selected = true; }; if (rc.extRCCFerroutage) { garantieRCCSelector.querySelector('option[value="ferroutage"]').selected = true; }; if (rc.extRCCFraisRecons) { garantieRCCSelector.querySelector('option[value="frais-reconstitution"]').selected = true; }; if (rc.extRCCConfie) { garantieRCCSelector.querySelector('option[value="contenant-confie"]').selected = true; if (rc.typeExtConfies == "ADVALOREM") { document.getElementById("AdValorem").checked = true; } else { document.getElementById("ValeurDeclaree").checked = true; } }; if (rc.extRCCTPPC) { garantieRCCSelector.querySelector('option[value="tppc"]').selected = true; }; if (rc.extRCCRegie) { garantieRCCSelector.querySelector('option[value="regie"]').selected = true; }; if (rc.extRCCSansMontageDemontage) { garantieRCCSelector.querySelector('option[value="sans-montage-demontage"]').selected = true; }; document.getElementById('garantieRCC-selector').dispatchEvent(new Event('change')); // Populate extensions de garantie RCC if (rc.autresRC) { document.getElementById("choixRCE").checked = true; document.getElementById('garantieRCE').style.display = 'block'; document.getElementById('RCE1').style.display = ''; document.getElementById('RCE2').style.display = ''; } const garantieRCESelector = document.getElementById('garantieRCE-selector'); if (rc.extRCEBraDebra) { garantieRCESelector.querySelector('option[value="branchement-debranchement"]').selected = true; }; if (rc.extRCEMontageDemontage) { garantieRCESelector.querySelector('option[value="montage-demontage"]').selected = true; }; document.getElementById('garantieRCE-selector').dispatchEvent(new Event('change')); // Populate temporalité if (rc.tempo) { document.getElementById(rc.tempo).checked = true }; if (rc.dateEffet) { document.getElementById("dateEffet").value = rc.dateEffet }; if (rc.dateEcheance) { document.getElementById("dateEcheance").value = rc.dateEcheance }; if (contrat.type == "TEMPORAIRE") { document.getElementById("rowDateFin").style.display = 'block'; } if (rc.dateFin) { document.getElementById("dateFin").value = rc.dateFin }; if (rc.programmeInternationale) { document.getElementById("programmeInternationale").checked = true; } if (rc.participationResultat) { document.getElementById("participationResultat").checked = true; } if (rc.pj) { document.getElementById("switchPJ").checked = true; document.getElementById('PJ1').style.display = ''; document.getElementById('PJ2').style.display = ''; } // Populate Cotisation if (rc.typeCot) { document.getElementById(rc.typeCot).checked = true }; if (rc.typeCot == "forfaitaire") { document.getElementById("checkVehicules").style.display = 'block'; document.getElementById("colTauxAjustement").style.display = 'none'; document.getElementById("colCotMini").style.display = 'none'; document.getElementById("colCA").style.display = 'none'; document.getElementById("colTypeCot").classList.remove('s4'); document.getElementById("colTypeCot").classList.add('s6'); document.getElementById("colTypeCot").style.margin = "0 auto"; document.getElementById("colTypeCot").style.float = "none"; document.getElementById("colDetailCot").classList.remove('s6'); document.getElementById("colDetailCot").classList.add('s12'); } else if (rc.typeCot == "revisable") { document.getElementById("checkVehicules").style.display = 'none'; document.getElementById("colTauxAjustement").style.display = 'block'; document.getElementById("colCA").style.display = 'block'; document.getElementById("colCotMini").style.display = 'block'; document.getElementById("colTypeCot").style.margin = ""; document.getElementById("colTypeCot").style.float = "left"; } if (rc.ca) { document.getElementById("CA").value = rc.ca }; if (rc.cotIrreductible) { document.getElementById("cotisationIrreductible").value = rc.cotIrreductible }; if (rc.tauxRCCHT) { document.getElementById("tauxRCCHT").value = rc.tauxRCCHT }; if (rc.tauxRCCTTC) { document.getElementById("tauxRCCTTC").value = rc.tauxRCCTTC }; if (rc.tauxRCEHT) { document.getElementById("tauxRCEHT").value = rc.tauxRCEHT }; if (rc.tauxRCETTC) { document.getElementById("tauxRCETTC").value = rc.tauxRCETTC }; if (rc.tauxTotalHT) { document.getElementById("tauxTotalHT").value = rc.tauxTotalHT }; if (rc.tauxTotalTTC) { document.getElementById("tauxTotalTTC").value = rc.tauxTotalTTC }; if (rc.cotRCCHT) { document.getElementById("cotRCCHT").value = rc.cotRCCHT }; if (rc.cotRCCTTC) { document.getElementById("cotRCCTTC").value = rc.cotRCCTTC }; if (rc.cotRCEHT) { document.getElementById("cotRCEHT").value = rc.cotRCEHT }; if (rc.cotRCETTC) { document.getElementById("cotRCETTC").value = rc.cotRCETTC }; if (rc.cotPJHT) { document.getElementById("cotPJHT").value = rc.cotPJHT }; if (rc.cotPJTTC) { document.getElementById("cotPJTTC").value = rc.cotPJTTC }; if (rc.cotTotalHT) { document.getElementById("cotTotalHT").value = rc.cotTotalHT }; if (rc.cotTotalTTC) { document.getElementById("cotTotalTTC").value = rc.cotTotalTTC }; if (rc.cotFraisHT) { document.getElementById("cotFraisHT").value = rc.cotFraisHT }; if (rc.cotFraisTTC) { document.getElementById("cotFraisTTC").value = rc.cotFraisTTC }; // Populate tableau vehicule if (!rc || !rc.designationVehicule || Object.keys(rc.designationVehicule).length === 0) { console.log("Le JSON est vide, pas de véhicules à pré-remplir."); } else { for (let i = 0; i < rc.designationVehicule.length; i++) { const row = rc.designationVehicule[i]; addRowVehicule(row.marque, row.genre, row.type, row.immat, row.capital); } } // Populate Grille Advalorem if (rc.actMultimodal) { if (rc.grilleAerien) { populateGrAdvalo(rc.grilleAerien, "tabAdvaloAerien"); document.getElementById('divAdvaloAerien').style.display = "block"; document.getElementById('divAdvaloTerrestre').style.display = "none"; document.getElementById('divAdvaloMultimodal').style.display = "none"; }; if (rc.grilleTerrestre) { populateGrAdvalo(rc.grilleTerrestre, "tabAdvaloTerrestre"); document.getElementById('divAdvaloTerrestre').style.display = "block"; document.getElementById('divAdvaloAerien').style.display = "none"; document.getElementById('divAdvaloMultimodal').style.display = "none"; }; if (rc.grilleMultimodal) { populateGrAdvalo(rc.grilleMultimodal, "tabAdvaloMultimodal"); document.getElementById('divAdvaloMultimodal').style.display = "block"; document.getElementById('divAdvaloAerien').style.display = "none"; document.getElementById('divAdvaloTerrestre').style.display = "none"; }; } else { if (rc.grilleTerrestre) { populateGrAdvalo(rc.grilleTerrestre, "tabAdvaloTerrestre"); document.getElementById('divAdvaloTerrestre').style.display = "block"; document.getElementById('divAdvaloAerien').style.display = "none"; document.getElementById('divAdvaloMultimodal').style.display = "none"; }; } } function populateGrAdvalo(jsonData, tableID) { var table = document.getElementById(tableID); for (var i = 0; i < jsonData.length; i++) { var category = jsonData[i].name; for (var j = 1; j < table.rows.length; j++) { var categoryName = table.rows[j].cells[0].innerText.trim(); if (categoryName === category) { var categoryRow = table.rows[j]; for (var k = 1; k <= 6; k++) { var zoneKey = "zone" + k; var zoneInput = categoryRow.cells[k].querySelector("input[type='text']"); zoneInput.value = jsonData[i][zoneKey]; } break; } } } } const categories = { multimodal: { Cat1: [0.06, 0.06, 0.07, 0.09, 0.12, 0.14], Cat2: [0.12, 0.13, 0.14, 0.24, 0.24, 0.3], Cat3: [0.07, 0.08, 0.09, 0.14, 0.14, 0.18], Cat4: [0.14, 0.17, 0.17, 0.29, 0.29, 0.36], Cat5: [0.17, 0.19, 0.21, 0.35, 0.35, 0.43], Cat6: ["Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter"], Cat7: [0.30, 0.33, 0.36, 0.60, 0.60, 0.75], Cat8: ["Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter"] }, terrestre: { Cat1: [0.05, 0.053, 0.06, 0.09, 0.12, 0.14], Cat2: [0.10, 0.11, 0.12, 0.24, 0.24, 0.25], Cat3: [0.06, 0.066, 0.07, 0.14, 0.14, 0.15], Cat4: [0.12, 0.132, 0.14, 0.29, 0.29, 0.30], Cat5: [0.14, 0.158, 0.17, 0.35, 0.35, 0.36], Cat6: ["Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter"], Cat7: [0.25, 0.275, 0.3, 0.6, 0.6, 0.63], Cat8: ["Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter"] }, aerien: { Cat1: [0.04, 0.04, 0.05, 0.06, 0.08, 0.10], Cat2: [0.09, 0.09, 0.10, 0.13, 0.17, 0.21], Cat3: [0.05, 0.06, 0.06, 0.08, 0.10, 0.13], Cat4: [0.10, 0.11, 0.12, 0.15, 0.20, 0.26], Cat5: [0.12, 0.13, 0.15, 0.18, 0.24, 0.31], Cat6: ["Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter"], Cat7: [0.21, 0.23, 0.26, 0.32, 0.43, 0.53], Cat8: ["Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter", "Nous consulter"] } }; function handleGrAdvalo() { for (let i = 1; i <= 6; i++) { const checkZone = document.getElementById("zone" + i).checked; for (let j = 1; j <= 6; j++) { // Gestion multimodal updateCategoryValues("multimodal", i, j, checkZone); // Gestion terrestre updateCategoryValues("terrestre", i, j, checkZone); // Gestion aerien updateCategoryValues("aerien", i, j, checkZone); } } } function updateCategoryValues(mode, zone, index, checkZone) { for (let k = 1; k <= 8; k++) { const element = document.getElementById(`${mode}Cat${k}Zone${zone}`); const marPerissable = document.getElementById("perissable-temperature-dirigee-chip") || null; const marEngins = document.getElementById("engins-chantier-agricole-chip" || null); const marMobilier = document.getElementById("mobilier-usages-chip" || null); const marRoulantDem = document.getElementById("roulant-demenagement-chip" || null); const marRoulant = document.getElementById("roulant-chip" || null); let value = "Nous consulter"; // Par défaut if (checkZone) { if (k === 4) { if (marPerissable) { value = categories[mode][`Cat${k}`][zone - 1]; } else { value = "Nous consulter"; } } else if (k === 5) { if (marEngins || marRoulant) { value = categories[mode][`Cat${k}`][zone - 1]; } else { value = "Nous consulter"; } } else if (k === 7) { if (marMobilier || marRoulantDem) { value = categories[mode][`Cat${k}`][zone - 1]; } else { value = "Nous consulter"; } } else { value = categories[mode][`Cat${k}`][zone - 1]; } } element.value = value; } } function handleLoadHistoriqueBtn() { var selectedId = document.getElementById('idSelect').value; if (selectedId != "") { fetch(`/contrat/update/${contrat.produit}/${contrat.id}/${selectedId}`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, }) .then(response => response.json()) .then(data => { if (data.valid) { window.location.href = `/navParcours?numParcours=${getNumParcoursFromURL()}&submenu=projet`; } else { console.log('Echec lors de la mise à jour de la relation id contrat - id client :', data); } }); } } function handleActivitySelection() { const select = document.getElementById('activity-selector'); const activityFormsContainer = document.getElementById('selected-activities'); // Clear previous entries activityFormsContainer.innerHTML = ''; // Clear any existing entries // Add a header for the "Dommage matériel (en €)" label that aligns with the input fields const headerDiv = document.createElement('div'); headerDiv.classList.add('row'); headerDiv.style.display = 'flex'; headerDiv.style.alignItems = 'center'; headerDiv.style.justifyContent = 'start'; headerDiv.innerHTML = `