This commit is contained in:
MatteoP 2020-12-18 17:01:12 +01:00
commit 8143dde5a6
3 changed files with 45 additions and 22 deletions

View File

@ -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',

View File

@ -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;

View File

@ -32,7 +32,7 @@ include_once __DIR__.'/../../core.php';
{["type": "text", "label": "<?php echo tr('Ricerca con lettore'); ?>", "name": "barcode", "icon-before": "<i class=\"fa fa-barcode\"></i>" ]}
</div>
</div>
<div class="row">
<div class="col-md-4">
{["type": "select", "label": "<?php echo tr('Articolo'); ?>", "name": "idarticolo", "ajax-source": "articoli", "value": "", "required": 1, "select-options": {"permetti_movimento_a_zero": 1, "idanagrafica": <?php echo setting('Azienda predefinita'); ?>, "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)