diff --git a/assets/src/js/functions/select.js b/assets/src/js/functions/select.js index 67e542085..d03cc7d0b 100755 --- a/assets/src/js/functions/select.js +++ b/assets/src/js/functions/select.js @@ -34,9 +34,12 @@ function start_superselect() { * @param container * @returns {*} */ -function selectOptionRender(data, container) { - let bg; +function optionRendering(data, container) { + // Aggiunta degli attributi impostati staticamente + selectOptionAttributes(data); + // Impostazione del colore dell'opzione + let bg; if (data._bgcolor_) { bg = data._bgcolor_; } else if ($(data.element).attr("_bgcolor_")) { @@ -50,6 +53,29 @@ function selectOptionRender(data, container) { $(container).css("color", setContrast(bg)); } + return data.text; +} + +/** + * Gestisce le operazioni di rendering per le opzioni selezionate del select. + * + * @param data + * @returns {*} + */ +function selectionRendering(data) { + // Aggiunta degli attributi impostati staticamente + selectOptionAttributes(data); + + return data.text; +} + +/** + * Gestisce le operazioni per l'impostazione dinamica degli attributi per una singola opzione del select. + * + * @param data + * @returns {void} + */ +function selectOptionAttributes(data) { // Aggiunta degli attributi impostati staticamente let attributes = $(data.element).data("select-attributes"); if (attributes) { @@ -57,8 +83,6 @@ function selectOptionRender(data, container) { data[key] = value; } } - - return data.text; } /** @@ -128,6 +152,9 @@ jQuery.fn.selectAdd = function (values) { values.forEach(function (item) { if (item.data) { + item['data-select-attributes'] = JSON.stringify(item.data); + + // Retrocompatibilità per l'uso del attributo data su selectData Object.keys(item.data).forEach(function (element) { item['data-' + element] = item.data[element]; }); @@ -220,7 +247,8 @@ function initStaticSelectInput(input) { escapeMarkup: function (text) { return text; }, - templateResult: selectOptionRender, + templateResult: optionRendering, + templateSelection: selectionRendering, }); } @@ -241,7 +269,8 @@ function initDynamicSelectInput(input) { escapeMarkup: function (text) { return text; }, - templateResult: selectOptionRender, + templateResult: optionRendering, + templateSelection: selectionRendering, ajax: { url: globals.rootdir + "/ajax_select.php?op=" + $input.data('source'), dataType: 'json', diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php index 3a053a2af..ff4973a93 100755 --- a/modules/fatture/src/Fattura.php +++ b/modules/fatture/src/Fattura.php @@ -167,8 +167,9 @@ class Fattura extends Document if (empty($id_banca_azienda)) { $id_banca_azienda = $azienda->{'idbanca_'.$conto}; } - $model->id_banca_azienda = $id_banca_azienda; } + + $model->id_banca_azienda = $id_banca_azienda; // Gestione dello Split Payment sulla base dell'anagrafica Controparte $split_payment = $anagrafica->split_payment; diff --git a/modules/movimenti/add.php b/modules/movimenti/add.php index 3fc11424c..fe1948fa0 100755 --- a/modules/movimenti/add.php +++ b/modules/movimenti/add.php @@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php'; {["type": "text", "label": "", "name": "barcode", "icon-before": "" ]} - +
{["type": "select", "label": "", "name": "idarticolo", "ajax-source": "articoli", "value": "", "required": 1, "select-options": {"permetti_movimento_a_zero": 1, "idanagrafica": , "idsede_partenza": 0, "idsede_destinazione": 0} ]} @@ -159,14 +159,13 @@ echo ' function ricercaBarcode(barcode) { // Ricerca via ajax del barcode negli articoli - $.get( - globals.rootdir + "/ajax_select.php?op=articoli&search=" + barcode, + $.get(globals.rootdir + "/ajax_select.php?op=articoli&search=" + barcode, function(data){ data = JSON.parse(data); // Articolo trovato if(data.results.length === 1) { - var record = data.results[0]; + let record = data.results[0]; $("#idarticolo").selectSetNew(record.id, record.text, record); salva($("#aggiungi")); @@ -183,20 +182,14 @@ echo ' async function salva(button) { $("#messages").html(""); - var qta_input = input("qta"); - var tipo_movimento = $("#tipo_movimento").val(); + let qta_input = input("qta"); + let tipo_movimento = $("#tipo_movimento").val(); let valid = await salvaForm(button, "#add-form"); if (valid) { let articolo = $("#idarticolo").selectData(); - if( articolo.descrizione==undefined ){ - articolo.descrizione = $( $("#idarticolo").selectData()["element"] ).data("descrizione"); - articolo.codice = $( $("#idarticolo").selectData()["element"] ).data("codice"); - articolo.um = $( $("#idarticolo").selectData()["element"] ).data("um"); - articolo.prezzo_acquisto = $( $("#idarticolo").selectData()["element"] ).data("prezzo_acquisto"); - articolo.prezzo_vendita = $( $("#idarticolo").selectData()["element"] ).data("prezzo_vendita"); - } + let prezzo_acquisto = parseFloat(articolo.prezzo_acquisto); let prezzo_vendita = parseFloat(articolo.prezzo_vendita); @@ -219,10 +212,10 @@ echo ' text = "Spostamento"; qta_rimanente = parseFloat(articolo.qta); } - + if (articolo.descrizione) { let testo = $("#info-articolo").html(); - + testo = testo.replace("|alert-type|", alert_type) .replace("|icon|", icon) .replace("|descrizione|", articolo.descrizione)