<?php include_once __DIR__.'/init.php'; $varianti_esistenti = $database->fetchArray('SELECT `mg_articoli`.`id` AS id_articolo, GROUP_CONCAT(`mg_articolo_attributo`.`id_valore`) AS variante FROM `mg_articolo_attributo` INNER JOIN `mg_valori_attributi` ON `mg_valori_attributi`.`id` = `mg_articolo_attributo`.`id_valore` INNER JOIN `mg_attributi` ON `mg_attributi`.`id` = `mg_valori_attributi`.`id_attributo` INNER JOIN `mg_articoli` ON `mg_articoli`.`id` = `mg_articolo_attributo`.`id_articolo` INNER JOIN `mg_combinazioni` ON `mg_combinazioni`.`id` = `mg_articoli`.`id_combinazione` INNER JOIN `mg_attributo_combinazione` ON `mg_attributo_combinazione`.`id_combinazione` = `mg_combinazioni`.`id` AND `mg_attributo_combinazione`.`id_attributo` = `mg_attributi`.`id` WHERE `mg_articoli`.`deleted_at` IS NULL AND `mg_articoli`.`id_combinazione` = '.prepare($combinazione->id).' GROUP BY `mg_articoli`.`id`'); $varianti_esistenti = array_column($varianti_esistenti, 'variante'); echo ' <form action="" method="post" id="form-variante"> <input type="hidden" name="op" value="add-variante"> <input type="hidden" name="backto" value="record-edit"> <p>'.tr('Completa le informazioni dei diversi Attributi per generare una variante della Combinazione').'.</p> <div class="row">'; $attributi = $combinazione->attributi; foreach ($attributi as $key => $attributo) { echo ' <div class="col-md-4"> {[ "type": "select", "label": "'.$attributo->getTranslation('title').'", "name": "attributo['.$key.']", "values": "query=SELECT id, nome AS descrizione FROM mg_valori_attributi WHERE id_attributo = '.prepare($attributo->id).' AND deleted_at IS NULL", "required": 1 ]} </div>'; } // Scelta articolo esistente echo ' <div class="col-md-4"> {[ "type": "select", "label": "'.tr('Collega articolo esistente').' ('.tr('facoltativo').')", "name": "id_articolo", "ajax-source": "articoli", "select-options": {"solo_non_varianti": 1, "permetti_movimento_a_zero": 1} ]} </div>'; echo ' </div> <div class="alert alert-info hidden" id="variante-esistente"> <i class="fa fa-info-circle"></i> '.tr('La variante indicata è già presente per la combinazione corrente').'. </div> <!-- PULSANTI --> <div class="row"> <div class="col-md-12 text-right"> <button type="submit" class="btn btn-primary"> <i class="fa fa-plus"></i> '.tr('Aggiungi').' </button> </div> </div> </form> <script> var varianti_esistenti = '.json_encode($varianti_esistenti).'; var form = $("#form-variante"); form.find("select").on("change", function () { const inputs = form.serializeArray(); // Individuazione variante e completezza let incompleto = false; let valori = []; for (const {name, value} of inputs) { if (name.startsWith("attributo")){ valori.push(value); incompleto |= !value; } } // Completamento informazioni const variante = valori.join(","); const variante_esistente = varianti_esistenti.includes(variante); // Disabilitazione/abilitazione pulsante di aggiunta const button = form.find("button"); if (variante_esistente || incompleto){ button.addClass("disabled").attr("disabled", true); } else { button.removeClass("disabled").attr("disabled", false); } // Messaggio informativo const info = form.find("#variante-esistente"); if (variante_esistente) { info.removeClass("hidden"); } else { info.addClass("hidden"); } }); $(document).ready(init); </script>';