1const addressTypes = { 2 invoiceAddress: 1, 3 deliveryAddress: 2, 4 sampleAddress: 3, 5 invoiceFormAddress: 4, 6 contactAddress: 5, 7 shippingAddress: 6 8}; 9 10function chooseAdresse(id_adresse, type_add) { 11 let body = { 12 id_adresse: id_adresse, 13 type_add: type_add 14 } 15 fetch("/" + currentLocale + "/order/select/address", { method: "POST", body: JSON.stringify(body) }) 16 .then(response => { 17 if (response.status !== 200) { 18 response.json().then(text => { 19 addToastMessage(text, "error", true); 20 }); 21 return; 22 } 23 response.json().then(data => { 24 if (type_add == 3) { 25 //si je suis en mode échantillon 26 let selectId = 'adresseEchantillon'; 27 if(!$('#' + selectId).length) { 28 selectId = 'wine_address'; 29 } 30 if(!$('#' + selectId).length) { 31 selectId = 'sample_participant'; 32 } 33 34 $('#' + selectId).val(data.idAdresse); 35 $('#adresseInfo').html(data.infoAdresse); 36 37 let found = false; 38 $('#' + selectId +' > option').each(function() { 39 if ($(this).val() == data.idAdresse) { 40 found = true; 41 } 42 }); 43 if (!found) { 44 var newOption = new Option(data.infoAdresse, data.idAdresse, false, false); 45 $('#' + selectId).append(newOption); 46 } 47 $('#' + selectId).val(data.idAdresse); 48 $('#'+ selectId).children('option[value="'+data.idAdresse+'"]').text(data.infoAdresse); 49 $('#' + selectId).trigger('change'); 50 let modal = document.querySelector('#address-book-modal'); 51 if (modal.dataset.tailwindModal) { 52 $('#' + selectId).select2(); 53 } else { 54 $('#' + selectId).select2({ 55 theme: "bootstrap" 56 }); 57 } 58 } else if (type_add == 1) { 59 let $content = $($("#template_adresse_hidden").html()); 60 $('<input type="hidden" name="fact_adresse" value="' + data.idAdresse + '">').prependTo($content); 61 $content.find("#nom_addr_hid").text(data.nom_addr); 62 $content.find("#addresse_hid").text(data.addr); 63 $content.find("#cpAdresse").val(data.cp); 64 $content.find("#cpAdresse_label").text(data.desc_cp); 65 $content.find("#paysAdresse").val(data.pays_key); 66 $content.find("#paysAdresse_label").text(data.pays_nom); 67 $content.append(data.msg); 68 $('input:radio[name="adresse_fact"]').filter('[value=1]').prop('checked', false); 69 $('input:radio[name="adresse_fact"]').filter('[value=0]').prop('checked', true); 70 71 if ($("#blocfact2").is(':visible')) { 72 $("#blocfact2").html($content); 73 } else { 74 $("#blocfact1").html($content); 75 } 76 77 var cp = $('#cpAdresse').val(); 78 var pays = $('#paysAdresse').val(); 79 $.ajax({ 80 type: "POST", 81 url: "/" + currentLocale + "/ajaxImprimeurChooseImp", 82 data: { 83 cp: cp, 84 pays: pays 85 } 86 }).done(function (msg) { 87 if ($('#imprimeur').val() != 561) { 88 $('#imprimeur option[value=' + msg.num + ']').attr("selected", "selected"); 89 } 90 }); 91 } else if (type_add == 4) { 92 let found = false;
93 $('#invoice_public_address > option').each(function() { 94 if ($(this).val() == data.idAdresse) { 95 $(this).text(data.infoAdresse); 96 $(this).prop('selected', true); 97 found = true; 98 } 99 }); 100 if (!found) { 101 $("#invoice_public_address option:last").before('<option value="' + data.idAdresse + '">' + data.infoAdresse + '</option>'); 102 $('#invoice_public_address option[value="' + data.idAdresse + '"]').prop('selected', true); 103 } 104 $('#invoice_public_address').trigger('change'); 105 $('#invoice_public_address').select2(); 106 } else if (type_add == 5) { 107 document.querySelector('[name="contact_address"]').value = id_adresse; 108 document.getElementById('contact_label_id').value = (data.firstName ?? '') + ' ' + (data.lastName ?? ''); 109 document.getElementById('tel_label_id').value = data.phone; 110 document.getElementById('mobile_label_id').value = data.mobile; 111 document.getElementById('email_label_id').value = data.email; 112 } else { 113 let $content = $($("#template_adresse_hidden").html()); 114 $('<input type="hidden" name="livr_adresse" value="' + data.idAdresse + '"><input type="hidden" id="id_pays_livraison_autre" value="' + data.pays + '">').prependTo($content); 115 $content.find("#nom_addr_hid").text(data.nom_addr); 116 $content.find("#addresse_hid").text(data.addr); 117 $content.find("#cpAdresse").val(data.cp); 118 $content.find("#cpAdresse_label").text(data.desc_cp); 119 $content.find("#paysAdresse").val(data.pays_key); 120 $content.find("#paysAdresse_label").text(data.pays_nom); 121 $content.append(data.msg); 122 $('input:radio[name="adresse_livr"]').filter('[value=1]').prop('checked', false); 123 $('input:radio[name="adresse_livr"]').filter('[value=0]').prop('checked', true); 124 if ($("#blocliv2").is(':visible')) { 125 $("#blocliv2").html($content); 126 } else { 127 $("#blocliv1").html($content); 128 } 129 130 if (typeof calculTarifLivraison === 'function') { 131 calculTarifLivraison(); 132 } 133 if (typeof updateShippingFees === 'function') { 134 updateShippingFees(); 135 } 136 } 137 }); 138 }); 139} 140 141function toggleRegionField(countryId, isInitialization = false) { 142 let regionField = getElement().querySelector('#address_region'); 143 let countryField = getElement().querySelector('#address_country'); 144 let originalRegion = regionField.dataset.originalRegion; 145 146 for (let i = 0; i < countryField.options.length; i++) { 147 const element = countryField.options[i]; 148 if(element.value == countryId) { 149 if(element.dataset.regionEnabled == 1) { 150 if (isInitialization) { 151 regionField.value = originalRegion; 152 } 153 regionField.parentNode.style.display = 'flex'; 154 regionField.required = true; 155 } else { 156 regionField.parentNode.style.display = 'none'; 157 regionField.value = ''; 158 regionField.required = false; 159 } 160 break; 161 } 162 } 163} 164 165function toggleVatField(countryId) { 166 let vatField = getElement().querySelector('#address_vatNumber'); 167 let vatFieldGroup = vatField.closest('.form-group'); 168 let countryField = getElement().querySelector('#address_country'); 169 170 for (let i = 0; i < countryField.options.length; i++) { 171 const element = countryField.options[i]; 172 if(element.value == countryId) { 173 if(element.dataset.ue == 1) { 174 vatFieldGroup.style.display = 'flex'; 175 } else { 176 vatFieldGroup.style.display = 'none'; 177 vatField.value = ''; 178 } 179 break; 180 } 181 } 182} 183 184function toggleElectronicInvoicingFields(countryId, isInitialization = false) {
185 let countryField = getElement().querySelector('#address_country'); 186 let fieldsContainer = getElement().querySelectorAll('[data-electronic-invoicing-field]'); 187 188 let activeFields = []; 189 let lookupConfig = null; 190 for (let i = 0; i < countryField.options.length; i++) { 191 const element = countryField.options[i]; 192 if (element.value == countryId) { 193 activeFields = JSON.parse(element.dataset.electronicInvoicingFields || '[]'); 194 lookupConfig = element.dataset.electronicInvoicingLookup ? JSON.parse(element.dataset.electronicInvoicingLookup) : null; 195 break; 196 } 197 } 198 199 fieldsContainer.forEach(function(row) { 200 let key = row.dataset.electronicInvoicingField; 201 let match = activeFields.find(f => f.key === key); 202 let input = row.querySelector('input'); 203 if (match) { 204 row.style.display = 'flex'; 205 input.required = match.required; 206 } else { 207 row.style.display = 'none'; 208 input.required = false; 209 if (!isInitialization) { 210 input.value = ''; 211 } 212 } 213 214 let existingTrigger = row.querySelector('[data-electronic-invoicing-lookup-trigger]'); 215 if (existingTrigger) { 216 existingTrigger.remove(); 217 } 218 219 let isLookupTarget = lookupConfig && lookupConfig.targetFieldKeys.includes(key); 220 input.readOnly = !!isLookupTarget; 221 if (!isLookupTarget) { 222 input.removeAttribute('data-electronic-invoicing-lookup-source-key'); 223 input.style.display = ''; 224 } 225 226 if (isLookupTarget) { 227 input.setAttribute('data-electronic-invoicing-lookup-source-key', lookupConfig.sourceFieldKey); 228 input.style.display = input.value ? '' : 'none'; 229 230 let targetFieldIds = {}; 231 lookupConfig.targetFieldKeys.forEach(function(targetKey) { 232 targetFieldIds[targetKey] = 'address_electronicInvoicingField_' + targetKey; 233 }); 234 235 let button = document.createElement('button'); 236 button.type = 'button'; 237 button.className = 'btn btn-secondary btn-sm'; 238 button.textContent = gettext('RECHERCHER_VIA_CHAMP').replace('%CHAMP%', lookupConfig.sourceFieldLabel); 239 button.setAttribute('data-electronic-invoicing-lookup-trigger', '1'); 240 button.dataset.sourceInputId = 'address_electronicInvoicingField_' + lookupConfig.sourceFieldKey; 241 button.dataset.countryInputId = 'address_country'; 242 button.dataset.targetFieldIds = JSON.stringify(targetFieldIds); 243 let sourceInput = getElement().querySelector('#' + button.dataset.sourceInputId); 244 button.disabled = !sourceInput || sourceInput.value.trim() === ''; 245 row.appendChild(button); 246 } 247 }); 248} 249 250function getElement() { 251 let element = document; 252 if (typeof web !== 'undefined') { 253 let modal = document.getElementById("address-book-modal"); 254 element = modal.shadowRoot; 255 } 256 257 return element; 258} 259 260function retourAddress(type_add){ 261 if($("#done_callback").attr("data-del") == "true") { 262 if (type_add == 1) { 263 $("#blocfact2").hide(); 264 $("#blocfact1").show(); 265 } else { 266 $("#blocliv2").hide(); 267 $("#blocliv1").show(); 268 } 269 } 270 getFiltre(1); 271 if (type_add == 1) { 272 if ($("#blocfact2").is(':visible')) { 273 $('input:radio[name="adresse_fact"]').filter('[value=0]').prop('checked', true); 274 $('input:radio[name="adresse_fact"]').filter('[value=1]').prop('checked', false); 275 } else { 276 $('input:radio[name="adresse_fact"]').filter('[value=0]').prop('checked', false); 277 $('input:radio[name="adresse_fact"]').filter('[value=1]').prop('checked', true); 278 } 279 } else { 280 if ($("#blocliv2").is(':visible')) { 281 $('input:radio[name="adresse_livr"]').filter('[value=1]').prop('checked', false); 282 $('input:radio[name="adresse_livr"]').filter('[value=0]').prop('checked', true); 283 } else { 284 $('input:radio[name="adresse_livr"]').filter('[value=1]').prop('checked', true); 285 $('input:radio[name="adresse_livr"]').filter('[value=0]').prop('checked', false); 286 } 287 } 288}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.