1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-27 16:57:38 +01:00

Aggiunto salvataggo AJAX delle modifiche (#636)

This commit is contained in:
Thomas Zilio 2020-08-03 12:08:52 +02:00
parent 2356cca7b9
commit 3ccb4ecf28
13 changed files with 467 additions and 287 deletions

View File

@ -12,9 +12,9 @@ function openModal(title, href) {
// Generazione dinamica modal // Generazione dinamica modal
do { do {
id = '#bs-popup-' + Math.floor(Math.random() * 100); id = '#bs-popup-' + Math.floor(Math.random() * 100);
} while ($(id).length != 0); } while ($(id).length !== 0);
if ($(id).length == 0) { if ($(id).length === 0) {
$('#modals').append('<div class="modal fade" id="' + id.replace("#", "") + '" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="true"></div>'); $('#modals').append('<div class="modal fade" id="' + id.replace("#", "") + '" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="true"></div>');
} }
@ -40,14 +40,14 @@ function openModal(title, href) {
</div>'; </div>';
// Lettura contenuto div // Lettura contenuto div
if (href.substr(0, 1) == '#') { if (href.substr(0, 1) === '#') {
var data = $(href).html(); var data = $(href).html();
$(id).html(content.replace("|data|", data)); $(id).html(content.replace("|data|", data));
$(id).modal('show'); $(id).modal('show');
} else { } else {
$.get(href, function (data, response) { $.get(href, function (data, response) {
if (response == 'success') { if (response === 'success') {
$(id).html(content.replace("|data|", data)); $(id).html(content.replace("|data|", data));
$(id).modal('show'); $(id).modal('show');
} }
@ -65,7 +65,7 @@ function openLink(event, link) {
/** /**
* Funzione per far scrollare la pagina fino a un offset * Funzione per far scrollare la pagina fino a un offset
* @param integer offset * @param offset
*/ */
function scrollToOffset(offset) { function scrollToOffset(offset) {
$('html,body').animate({ $('html,body').animate({
@ -80,11 +80,9 @@ function getUrlVars() {
var search = window.location.search.substring(1); var search = window.location.search.substring(1);
if (!search) return {}; if (!search) return {};
var results = JSON.parse('{"' + search.replace(/&/g, '","').replace(/=/g, '":"') + '"}', function (key, value) { return JSON.parse('{"' + search.replace(/&/g, '","').replace(/=/g, '":"') + '"}', function (key, value) {
return key === "" ? value : decodeURIComponent(value) return key === "" ? value : decodeURIComponent(value)
}); });
return results;
} }
// Data e ora (orologio) // Data e ora (orologio)
@ -108,19 +106,18 @@ function session_set_array(session_array, value, inversed) {
* Funzione per impostare un valore ad una sessione * Funzione per impostare un valore ad una sessione
*/ */
function session_set(session_array, value, clear, reload) { function session_set(session_array, value, clear, reload) {
if (clear == undefined) { if (clear === undefined) {
clear = 1; clear = 1;
} }
if (reload == undefined) { if (reload === undefined) {
reload = 0; reload = 0;
} }
return $.get(globals.rootdir + "/ajax.php?op=session_set&session=" + session_array + "&value=" + value + "&clear=" + clear, function (data, status) { return $.get(globals.rootdir + "/ajax.php?op=session_set&session=" + session_array + "&value=" + value + "&clear=" + clear, function (data, status) {
if (reload === 1) {
if (reload == 1)
location.reload(); location.reload();
}
}); });
} }
@ -377,49 +374,52 @@ function buttonRestore(button, loadingResult) {
} }
function submitAjax(form, data, callback, errorCallback) { function submitAjax(form, data, callback, errorCallback) {
var valid = $(form).parsley().validate(); let valid = $(form).parsley().validate();
if (!valid) {
return valid;
}
if (!data) data = {}; if (!data) data = {};
if (valid) { $("#main_loading").show();
$("#main_loading").show(); content_was_modified = false;
content_was_modified = false; // Fix per gli id di default
data.id_module = data.id_module ? data.id_module : globals.id_module;
data.id_record = data.id_record ? data.id_record : globals.id_record;
data.id_plugin = data.id_plugin ? data.id_plugin : globals.id_plugin;
data.ajax = 1;
// Fix per gli id di default prepareForm(form);
data.id_module = data.id_module ? data.id_module : globals.id_module;
data.id_record = data.id_record ? data.id_record : globals.id_record;
data.id_plugin = data.id_plugin ? data.id_plugin : globals.id_plugin;
data.ajax = 1;
prepareForm(form); // Invio dei dati
$(form).ajaxSubmit({
url: globals.rootdir + "/actions.php",
data: data,
type: "post",
success: function (data) {
let response = data.trim();
// Invio dei dati // Tentativo di conversione da JSON
$(form).ajaxSubmit({ try {
url: globals.rootdir + "/actions.php", response = JSON.parse(response);
data: data, } catch (e) {
type: "post",
success: function (data) {
data = data.trim();
if (data) {
response = JSON.parse(data);
if (callback) callback(response);
}
$("#main_loading").fadeOut();
renderMessages();
},
error: function (data) {
$("#main_loading").fadeOut();
toastr["error"](data);
if (errorCallback) errorCallback(data);
} }
});
} callback(response);
$("#main_loading").fadeOut();
renderMessages();
},
error: function (data) {
$("#main_loading").fadeOut();
toastr["error"](data);
if (errorCallback) errorCallback(data);
}
});
return valid; return valid;
} }
@ -522,3 +522,36 @@ function alertPush() {
}); });
}); });
} }
function salvaForm(button, form) {
return new Promise(function (resolve, reject) {
// Caricamento visibile nel pulsante
let restore = buttonLoading(button);
// Messaggio in caso di eventuali errori
let valid = $(form).parsley().validate();
if (!valid) {
swal({
type: "error",
title: globals.translations.ajax.missing.title,
text: globals.translations.ajax.missing.text,
});
resolve(false);
}
submitAjax(form, {}, function (response) {
buttonRestore(button, restore);
resolve(true);
}, function (data) {
swal({
type: "error",
title: globals.translations.ajax.error.title,
text: globals.translations.ajax.error.text,
});
buttonRestore(button, restore);
resolve(false);
});
});
}

View File

@ -101,6 +101,16 @@ if (Auth::check()) {
'.$key.': "'.addslashes($value).'",'; '.$key.': "'.addslashes($value).'",';
} }
echo ' echo '
ajax: {
"missing": {
"title": "'.tr('Errore').'",
"text": "'.tr('Alcuni campi obbligatori non sono stati compilati correttamente').'",
},
"error": {
"title": "'.tr('Errore').'",
"text": "'.tr('Errore durante il salvataggio del record').'",
}
},
password: { password: {
"wordMinLength": "'.tr('La password è troppo corta').'", "wordMinLength": "'.tr('La password è troppo corta').'",
"wordMaxLength": "'.tr('La password è troppo lunga').'", "wordMaxLength": "'.tr('La password è troppo lunga').'",

View File

@ -287,7 +287,8 @@ if (!empty($rs)) {
echo ' echo '
</table>'; </table>';
} }
?> echo '
</div> </div>
</div> </div>
</div> </div>
@ -295,52 +296,51 @@ if (!empty($rs)) {
</div> </div>
</form> </form>
<!-- RIGHE --> <!-- RIGHE -->
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Righe'); ?></h3> <h3 class="panel-title">'.tr('Righe').'</h3>
</div> </div>
<div class="panel-body"> <div class="panel-body">';
<?php
if (!$block_edit) { if (!$block_edit) {
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_articolo" data-toggle="tooltip" data-title="'.tr('Aggiungi articolo').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi articolo').'" onclick="gestioneArticolo(this)">
<i class="fa fa-plus"></i> '.tr('Articolo').' <i class="fa fa-plus"></i> '.tr('Articolo').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary"data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_barcode" data-toggle="tooltip" data-title="'.tr('Aggiungi articoli tramite barcode').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi articoli tramite barcode').'" onclick="gestioneBarcode(this)">
<i class="fa fa-plus"></i> '.tr('Barcode').' <i class="fa fa-plus"></i> '.tr('Barcode').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_riga" data-toggle="tooltip" data-title="'.tr('Aggiungi riga').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi riga').'" onclick="gestioneRiga(this)">
<i class="fa fa-plus"></i> '.tr('Riga').' <i class="fa fa-plus"></i> '.tr('Riga').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_descrizione" data-toggle="tooltip" data-title="'.tr('Aggiungi descrizione').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi descrizione').'" onclick="gestioneDescrizione(this)">
<i class="fa fa-plus"></i> '.tr('Descrizione').' <i class="fa fa-plus"></i> '.tr('Descrizione').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_sconto" data-toggle="tooltip" data-title="'.tr('Aggiungi sconto/maggiorazione').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi sconto/maggiorazione').'" onclick="gestioneSconto(this)">
<i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').' <i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').'
</a>'; </button>';
} }
?>
echo '
<div class="clearfix"></div> <div class="clearfix"></div>
<br> <br>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">';
<?php
include $docroot.'/modules/contratti/row-list.php'; include $structure->filepath('row-list.php');
?> echo '
</div> </div>
</div> </div>
</div> </div>
@ -351,46 +351,76 @@ include $docroot.'/modules/contratti/row-list.php';
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )} {( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() { function gestioneArticolo(button) {
$('#data_accettazione').on("dp.change", function() { gestioneRiga(button, "is_articolo");
if($(this).val()){ }
$('#data_rifiuto').attr('disabled', true);
}else{
$('#data_rifiuto').attr('disabled', false);
}
});
$('#data_rifiuto').on("dp.change", function() { function gestioneBarcode(button) {
if($(this).val()){ gestioneRiga(button, "is_barcode");
$('#data_accettazione').attr('disabled', true); }
}else{
$('#data_accettazione').attr('disabled', false);
}
});
$("#data_accettazione").trigger("dp.change"); function gestioneSconto(button) {
$("#data_rifiuto").trigger("dp.change"); gestioneRiga(button, "is_sconto");
}
function gestioneDescrizione(button) {
gestioneRiga(button, "is_descrizione");
}
async function gestioneRiga(button, options) {
// Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
// Apertura modal
if (valid) {
// Lettura titolo e chiusura tooltip
let title = $(button).tooltipster("content");
$(button).tooltipster("close")
// Apertura modal
options = options ? options : "is_riga";
openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options);
}
}
$(document).ready(function() {
$("#data_accettazione").on("dp.change", function() {
if($(this).val()){
$("#data_rifiuto").attr("disabled", true);
}else{
$("#data_rifiuto").attr("disabled", false);
}
}); });
$('#idanagrafica_c').change(function() { $("#data_rifiuto").on("dp.change", function() {
updateSelectOption("idanagrafica", $(this).val()); if($(this).val()){
session_set('superselect,idanagrafica', $(this).val(), 0); $("#data_accettazione").attr("disabled", true);
}else{
$("#data_accettazione").attr("disabled", false);
}
});
$("#idsede").selectReset(); $("#data_accettazione").trigger("dp.change");
}); $("#data_rifiuto").trigger("dp.change");
});
$('#codice_cig, #codice_cup').bind("keyup change", function(e) { $("#idanagrafica_c").change(function() {
updateSelectOption("idanagrafica", $(this).val());
session_set("superselect,idanagrafica", $(this).val(), 0);
if ($('#codice_cig').val() == '' && $('#codice_cup').val() == '' ){ $("#idsede").selectReset();
$('#id_documento_fe').prop('required', false); });
}else{
$('#id_documento_fe').prop('required', true);
}
}); $("#codice_cig, #codice_cup").bind("keyup change", function(e) {
</script>
if ($("#codice_cig").val() == "" && $("#codice_cup").val() == "" ){
$("#id_documento_fe").prop("required", false);
}else{
$("#id_documento_fe").prop("required", true);
}
});
</script>';
<?php
// Collegamenti diretti // Collegamenti diretti
// Fatture o interventi collegati a questo contratto // Fatture o interventi collegati a questo contratto
$elementi = $dbo->fetchArray('SELECT 0 AS `codice`, `co_documenti`.`id` AS `id`, `co_documenti`.`numero` AS `numero`, `co_documenti`.`numero_esterno` AS `numero_esterno`, `co_documenti`.`data`, `co_tipidocumento`.`descrizione` AS `tipo_documento`, `co_tipidocumento`.`dir` AS `dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idcontratto` = '.prepare($id_record).')'.' $elementi = $dbo->fetchArray('SELECT 0 AS `codice`, `co_documenti`.`id` AS `id`, `co_documenti`.`numero` AS `numero`, `co_documenti`.`numero_esterno` AS `numero_esterno`, `co_documenti`.`data`, `co_tipidocumento`.`descrizione` AS `tipo_documento`, `co_tipidocumento`.`dir` AS `dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idcontratto` = '.prepare($id_record).')'.'

View File

@ -192,12 +192,18 @@ echo '
echo ' echo '
<script> <script>
function modificaRiga(button) { async function modificaRiga(button) {
var riga = $(button).closest("tr"); var riga = $(button).closest("tr");
var id = riga.data("id"); var id = riga.data("id");
var type = riga.data("type"); var type = riga.data("type");
openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type) // Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
// Apertura modal
if (valid) {
openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type);
}
} }
function rimuoviRiga(button) { function rimuoviRiga(button) {

View File

@ -33,8 +33,6 @@ $_SESSION['superselect']['permetti_movimento_a_zero'] = ($dir == 'uscita' ? true
</div> </div>
<div class="panel-body"> <div class="panel-body">
<?php <?php
if ($dir == 'entrata') { if ($dir == 'entrata') {
$rs2 = $dbo->fetchArray('SELECT piva, codice_fiscale, citta, indirizzo, cap, provincia FROM an_anagrafiche WHERE idanagrafica='.prepare($record['idanagrafica'])); $rs2 = $dbo->fetchArray('SELECT piva, codice_fiscale, citta, indirizzo, cap, provincia FROM an_anagrafiche WHERE idanagrafica='.prepare($record['idanagrafica']));
@ -322,29 +320,29 @@ if (!$block_edit) {
</a>'; </a>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_articolo" data-toggle="tooltip" data-title="'.tr('Aggiungi articolo').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi articolo').'" onclick="gestioneArticolo(this)">
<i class="fa fa-plus"></i> '.tr('Articolo').' <i class="fa fa-plus"></i> '.tr('Articolo').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary"data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_barcode" data-toggle="tooltip" data-title="'.tr('Aggiungi articoli tramite barcode').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi articoli tramite barcode').'" onclick="gestioneBarcode(this)">
<i class="fa fa-plus"></i> '.tr('Barcode').' <i class="fa fa-plus"></i> '.tr('Barcode').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_riga" data-toggle="tooltip" data-title="'.tr('Aggiungi riga').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi riga').'" onclick="gestioneRiga(this)">
<i class="fa fa-plus"></i> '.tr('Riga').' <i class="fa fa-plus"></i> '.tr('Riga').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_descrizione" data-toggle="tooltip" data-title="'.tr('Aggiungi descrizione').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi descrizione').'" onclick="gestioneDescrizione(this)">
<i class="fa fa-plus"></i> '.tr('Descrizione').' <i class="fa fa-plus"></i> '.tr('Descrizione').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_sconto" data-toggle="tooltip" data-title="'.tr('Aggiungi sconto/maggiorazione').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi sconto/maggiorazione').'" onclick="gestioneSconto(this)">
<i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').' <i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').'
</a>'; </button>';
} }
?> ?>
</div> </div>
@ -355,8 +353,9 @@ if (!$block_edit) {
<div class="col-md-12"> <div class="col-md-12">
<?php <?php
include $docroot.'/modules/ddt/row-list.php'; include $structure->filepath('row-list.php');
?>
echo '
</div> </div>
</div> </div>
</div> </div>
@ -367,15 +366,46 @@ include $docroot.'/modules/ddt/row-list.php';
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )} {( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
<script> <script>
$('#idanagrafica').change(function() { function gestioneArticolo(button) {
updateSelectOption("idanagrafica", $(this).val()); gestioneRiga(button, "is_articolo");
session_set('superselect,idanagrafica', $(this).val(), 0); }
$("#idsede_<?php echo $dir == 'uscita' ? 'partenza' : 'destinazione'; ?>").selectReset(); function gestioneBarcode(button) {
}); gestioneRiga(button, "is_barcode");
</script> }
function gestioneSconto(button) {
gestioneRiga(button, "is_sconto");
}
function gestioneDescrizione(button) {
gestioneRiga(button, "is_descrizione");
}
async function gestioneRiga(button, options) {
// Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
// Apertura modal
if (valid) {
// Lettura titolo e chiusura tooltip
let title = $(button).tooltipster("content");
$(button).tooltipster("close")
// Apertura modal
options = options ? options : "is_riga";
openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options);
}
}
$("#idanagrafica").change(function() {
updateSelectOption("idanagrafica", $(this).val());
session_set("superselect,idanagrafica", $(this).val(), 0);
$("#idsede_'.($dir == 'uscita' ? 'partenza' : 'destinazione').'").selectReset();
});
</script>';
<?php
// Collegamenti diretti // Collegamenti diretti
// Fatture collegate a questo ddt // Fatture collegate a questo ddt
$elementi = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idddt` = '.prepare($id_record).') ORDER BY `data`'); $elementi = $dbo->fetchArray('SELECT `co_documenti`.*, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idddt` = '.prepare($id_record).') ORDER BY `data`');

View File

@ -254,12 +254,18 @@ echo '
echo ' echo '
<script> <script>
function modificaRiga(button) { async function modificaRiga(button) {
var riga = $(button).closest("tr"); var riga = $(button).closest("tr");
var id = riga.data("id"); var id = riga.data("id");
var type = riga.data("type"); var type = riga.data("type");
openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type) // Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
// Apertura modal
if (valid) {
openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type);
}
} }
function rimuoviRiga(button) { function rimuoviRiga(button) {

View File

@ -266,7 +266,6 @@ elseif ($record['stato'] == 'Bozza') {
{[ "type": "select", "label": "<?php echo tr('Banca'); ?>", "name": "idbanca", "values": "query=SELECT id, CONCAT (nome, ' - ' , iban) AS descrizione FROM co_banche WHERE deleted_at IS NULL ORDER BY nome ASC", "value": "$idbanca$", "icon-after": "add|<?php echo Modules::get('Banche')['id']; ?>||", "extra": " <?php echo (intval($block_edit)) ? 'disabled' : ''; ?> " ]} {[ "type": "select", "label": "<?php echo tr('Banca'); ?>", "name": "idbanca", "values": "query=SELECT id, CONCAT (nome, ' - ' , iban) AS descrizione FROM co_banche WHERE deleted_at IS NULL ORDER BY nome ASC", "value": "$idbanca$", "icon-after": "add|<?php echo Modules::get('Banche')['id']; ?>||", "extra": " <?php echo (intval($block_edit)) ? 'disabled' : ''; ?> " ]}
</div> </div>
<?php <?php
if ($record['stato'] != 'Bozza' && $record['stato'] != 'Annullata') { if ($record['stato'] != 'Bozza' && $record['stato'] != 'Annullata') {
$ricalcola = true; $ricalcola = true;
@ -557,22 +556,21 @@ if ($tipodoc == 'Fattura accompagnatoria di vendita') {
</div> </div>
</div>'; </div>';
} }
?>
echo '
</form> </form>
<!-- RIGHE --> <!-- RIGHE -->
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title">Righe</h3> <h3 class="panel-title">'.tr('Righe').'</h3>
</div> </div>
<div class="panel-body"> <div class="panel-body">
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="pull-left"> <div class="pull-left">';
<?php
if (!$block_edit) { if (!$block_edit) {
if (empty($record['ref_documento'])) { if (empty($record['ref_documento'])) {
if ($dir == 'entrata') { if ($dir == 'entrata') {
@ -651,28 +649,29 @@ if (!$block_edit) {
$articoli = $dbo->fetchNum($art_query); $articoli = $dbo->fetchNum($art_query);
echo ' echo '
<a class="btn btn-sm btn-primary'.(!empty($articoli) ? '' : ' disabled').'" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_articolo" data-toggle="tooltip" data-title="'.tr('Aggiungi articolo').'"> <button class="btn btn-sm btn-primary tip'.(!empty($articoli) ? '' : ' disabled').'" title="'.tr('Aggiungi articolo').'" onclick="gestioneArticolo(this)">
<i class="fa fa-plus"></i> '.tr('Articolo').' <i class="fa fa-plus"></i> '.tr('Articolo').'
</a>'; </button>';
echo '
<a class="btn btn-sm btn-primary"data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_barcode" data-toggle="tooltip" data-title="'.tr('Aggiungi articoli tramite barcode').'">
<i class="fa fa-plus"></i> '.tr('Barcode').'
</a>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_riga" data-toggle="tooltip" data-title="'.tr('Aggiungi riga').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi articoli tramite barcode').'" onclick="gestioneBarcode(this)">
<i class="fa fa-plus"></i> '.tr('Riga').' <i class="fa fa-plus"></i> '.tr('Barcode').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_descrizione" data-toggle="tooltip" data-title="'.tr('Aggiungi descrizione').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi riga').'" onclick="gestioneRiga(this)">
<i class="fa fa-plus"></i> '.tr('Descrizione').' <i class="fa fa-plus"></i> '.tr('Riga').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_sconto" data-toggle="tooltip" data-title="'.tr('Aggiungi sconto/maggiorazione').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi descrizione').'" onclick="gestioneDescrizione(this)">
<i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').' <i class="fa fa-plus"></i> '.tr('Descrizione').'
</a>'; </button>';
echo '
<button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi sconto/maggiorazione').'" onclick="gestioneSconto(this)">
<i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').'
</button>';
} }
?> ?>
</div> </div>
@ -820,42 +819,39 @@ if (in_array($record[$field_name], $user->sedi)) {
<?php <?php
} }
echo ' echo '
<script> <script>
function gestioneArticolo(button) {
gestioneRiga(button, "is_articolo");
}
$(".btn-sm[data-toggle=\"tooltip\"]").each(function() { function gestioneBarcode(button) {
$(this).on("click", function() { gestioneRiga(button, "is_barcode");
var form = $("#edit-form"); }
var btn = $(this);
var restore = buttonLoading(btn); function gestioneSconto(button) {
gestioneRiga(button, "is_sconto");
}
var valid = submitAjax(form, {}, function() { function gestioneDescrizione(button) {
buttonRestore(btn, restore); gestioneRiga(button, "is_descrizione");
}, function() { }
buttonRestore(btn, restore);
});
// Procedo al salvataggio solo se tutti i campi obbligatori sono compilati, altrimenti mostro avviso async function gestioneRiga(button, options) {
//form.find("input:disabled, select:disabled").removeAttr("disabled"); // Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
if(!valid) { // Apertura modal
swal({ if (valid) {
type: "error", // Lettura titolo e chiusura tooltip
title: "'.tr('Errore').'", let title = $(button).tooltipster("content");
text: "'.tr('Alcuni campi obbligatori non sono stati compilati correttamente').'.", $(button).tooltipster("close")
});
$(document).one("show.bs.modal","#modals > div", function (e) { // Apertura modal
return e.preventDefault(); options = options ? options : "is_riga";
}); openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options);
} }
}
$(document).one("show.bs.modal","#modals > div", function () {
buttonRestore(btn, restore);
});
});
});
$(document).ready(function () { $(document).ready(function () {
$("#data_registrazione").on("dp.change", function (e) { $("#data_registrazione").on("dp.change", function (e) {

View File

@ -353,13 +353,18 @@ echo '
echo ' echo '
<script> <script>
async function modificaRiga(button) {
function modificaRiga(button) {
var riga = $(button).closest("tr"); var riga = $(button).closest("tr");
var id = riga.data("id"); var id = riga.data("id");
var type = riga.data("type"); var type = riga.data("type");
openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type) // Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
// Apertura modal
if (valid) {
openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type);
}
} }
function rimuoviRiga(button) { function rimuoviRiga(button) {

View File

@ -677,7 +677,6 @@ class Fattura extends Document
*/ */
public function getBanca() public function getBanca()
{ {
$result = [];
$riba = database()->fetchOne('SELECT riba FROM co_pagamenti WHERE id ='.prepare($this->idpagamento)); $riba = database()->fetchOne('SELECT riba FROM co_pagamenti WHERE id ='.prepare($this->idpagamento));
if ($riba['riba'] == 1) { if ($riba['riba'] == 1) {

View File

@ -180,30 +180,32 @@ echo '
if (!$block_edit) { if (!$block_edit) {
echo ' echo '
<div class="pull-left"> <div class="pull-left">';
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_articolo" data-toggle="tooltip" data-title="'.tr('Aggiungi articolo').'">
echo '
<button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi articolo').'" onclick="gestioneArticolo(this)">
<i class="fa fa-plus"></i> '.tr('Articolo').' <i class="fa fa-plus"></i> '.tr('Articolo').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary"data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_barcode" data-toggle="tooltip" data-title="'.tr('Aggiungi articoli tramite barcode').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi articoli tramite barcode').'" onclick="gestioneBarcode(this)">
<i class="fa fa-plus"></i> '.tr('Barcode').' <i class="fa fa-plus"></i> '.tr('Barcode').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_riga" data-toggle="tooltip" data-title="'.tr('Aggiungi riga').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi riga').'" onclick="gestioneRiga(this)">
<i class="fa fa-plus"></i> '.tr('Riga').' <i class="fa fa-plus"></i> '.tr('Riga').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_descrizione" data-toggle="tooltip" data-title="'.tr('Aggiungi descrizione').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi descrizione').'" onclick="gestioneDescrizione(this)">
<i class="fa fa-plus"></i> '.tr('Descrizione').' <i class="fa fa-plus"></i> '.tr('Descrizione').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_sconto" data-toggle="tooltip" data-title="'.tr('Aggiungi sconto/maggiorazione').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi sconto/maggiorazione').'" onclick="gestioneSconto(this)">
<i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').' <i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').'
</a>'; </button>';
echo ' echo '
</div>'; </div>';
@ -236,7 +238,58 @@ echo '
{( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )} {( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )}
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}'; {( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
<script>
function gestioneArticolo(button) {
gestioneRiga(button, "is_articolo");
}
function gestioneBarcode(button) {
gestioneRiga(button, "is_barcode");
}
function gestioneSconto(button) {
gestioneRiga(button, "is_sconto");
}
function gestioneDescrizione(button) {
gestioneRiga(button, "is_descrizione");
}
async function gestioneRiga(button, options) {
// Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
// Apertura modal
if (valid) {
// Lettura titolo e chiusura tooltip
let title = $(button).tooltipster("content");
$(button).tooltipster("close")
// Apertura modal
options = options ? options : "is_riga";
openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options);
}
}
$("#idanagrafica").change(function() {
updateSelectOption("idanagrafica", $(this).val());
session_set("superselect,idanagrafica", $(this).val(), 0);
$("#idsede").selectReset();
});
$(document).ready(function() {
$("#codice_cig, #codice_cup").bind("keyup change", function(e) {
if ($("#codice_cig").val() == "" && $("#codice_cup").val() == "" ){
$("#id_documento_fe").prop("required", false);
} else{
$("#id_documento_fe").prop("required", true);
}
});
});
</script>';
// Collegamenti diretti // Collegamenti diretti
// Fatture o ddt collegati a questo ordine // Fatture o ddt collegati a questo ordine
@ -296,25 +349,3 @@ if (!empty($elementi)) {
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?> <i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
</a> </a>
<script>
$('#idanagrafica').change(function() {
updateSelectOption("idanagrafica", $(this).val());
session_set('superselect,idanagrafica', $(this).val(), 0);
$("#idsede").selectReset();
});
$(document).ready(function() {
$('#codice_cig, #codice_cup').bind("keyup change", function(e) {
if ($('#codice_cig').val() == '' && $('#codice_cup').val() == '' ){
$('#id_documento_fe').prop('required', false);
}else{
$('#id_documento_fe').prop('required', true);
}
});
});
</script>

View File

@ -235,13 +235,18 @@ echo '
echo ' echo '
<script> <script>
async function modificaRiga(button) {
function modificaRiga(button) {
var riga = $(button).closest("tr"); var riga = $(button).closest("tr");
var id = riga.data("id"); var id = riga.data("id");
var type = riga.data("type"); var type = riga.data("type");
openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type) // Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
// Apertura modal
if (valid) {
openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type);
}
} }
function rimuoviRiga(button) { function rimuoviRiga(button) {

View File

@ -190,114 +190,138 @@ echo '
</div> </div>
</form> </form>
<?php
echo '
<!-- RIGHE --> <!-- RIGHE -->
<div class="panel panel-primary"> <div class="panel panel-primary">
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title">Righe</h3> <h3 class="panel-title">'.tr('Righe').'</h3>
</div> </div>
<div class="panel-body"> <div class="panel-body">';
<?php
if (!$block_edit) { if (!$block_edit) {
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_articolo" data-toggle="tooltip" data-title="'.tr('Aggiungi articolo').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi articolo').'" onclick="gestioneArticolo(this)">
<i class="fa fa-plus"></i> '.tr('Articolo').' <i class="fa fa-plus"></i> '.tr('Articolo').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary"data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_barcode" data-toggle="tooltip" data-title="'.tr('Aggiungi articoli tramite barcode').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi articoli tramite barcode').'" onclick="gestioneBarcode(this)">
<i class="fa fa-plus"></i> '.tr('Barcode').' <i class="fa fa-plus"></i> '.tr('Barcode').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_riga" data-toggle="tooltip" data-title="'.tr('Aggiungi riga').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi riga').'" onclick="gestioneRiga(this)">
<i class="fa fa-plus"></i> '.tr('Riga').' <i class="fa fa-plus"></i> '.tr('Riga').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_descrizione" data-toggle="tooltip" data-title="'.tr('Aggiungi descrizione').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi descrizione').'" onclick="gestioneDescrizione(this)">
<i class="fa fa-plus"></i> '.tr('Descrizione').' <i class="fa fa-plus"></i> '.tr('Descrizione').'
</a>'; </button>';
echo ' echo '
<a class="btn btn-sm btn-primary" data-href="'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&is_sconto" data-toggle="tooltip" data-title="'.tr('Aggiungi sconto/maggiorazione').'"> <button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi sconto/maggiorazione').'" onclick="gestioneSconto(this)">
<i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').' <i class="fa fa-plus"></i> '.tr('Sconto/maggiorazione').'
</a>'; </button>';
} }
?> echo '
<!--div class="pull-right">
{( "name": "button", "type": "print", "id_module": "<?php echo $id_module; ?>", "id_record": "<?php echo $id_record; ?>" )}
</div-->
<div class="clearfix"></div> <div class="clearfix"></div>
<br> <br>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">';
<?php
include $docroot.'/modules/preventivi/row-list.php'; include $structure->filepath('row-list.php');
?> echo '
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<script type="text/javascript">
$(document).ready(function() {
$('#idanagrafica').change(function() {
updateSelectOption("idanagrafica", $(this).val());
session_set('superselect,idanagrafica', $(this).val(), 0);
$("#idsede").selectReset();
});
$('#data_accettazione').on("dp.change", function() {
if($(this).val()){
$('#data_rifiuto').attr('disabled', true);
}else{
$('#data_rifiuto').attr('disabled', false);
}
});
$('#data_rifiuto').on("dp.change", function() {
if($(this).val()){
$('#data_accettazione').attr('disabled', true);
}else{
$('#data_accettazione').attr('disabled', false);
}
});
$("#data_accettazione").trigger("dp.change");
$("#data_rifiuto").trigger("dp.change");
$('#codice_cig, #codice_cup').bind("keyup change", function(e) {
if ($('#codice_cig').val() == '' && $('#codice_cup').val() == '' ){
$('#id_documento_fe').prop('required', false);
}else{
$('#id_documento_fe').prop('required', true);
}
});
});
</script>
{( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )} {( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )}
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )} {( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
<?php <script type="text/javascript">
function gestioneArticolo(button) {
gestioneRiga(button, "is_articolo");
}
function gestioneBarcode(button) {
gestioneRiga(button, "is_barcode");
}
function gestioneSconto(button) {
gestioneRiga(button, "is_sconto");
}
function gestioneDescrizione(button) {
gestioneRiga(button, "is_descrizione");
}
async function gestioneRiga(button, options) {
// Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
// Apertura modal
if (valid) {
// Lettura titolo e chiusura tooltip
let title = $(button).tooltipster("content");
$(button).tooltipster("close")
// Apertura modal
options = options ? options : "is_riga";
openModal(title, "'.$structure->fileurl('row-add.php').'?id_module='.$id_module.'&id_record='.$id_record.'&" + options);
}
}
$(document).ready(function() {
$("#idanagrafica").change(function() {
updateSelectOption("idanagrafica", $(this).val());
session_set("superselect,idanagrafica", $(this).val(), 0);
$("#idsede").selectReset();
});
$("#data_accettazione").on("dp.change", function() {
if($(this).val()){
$("#data_rifiuto").attr("disabled", true);
}else{
$("#data_rifiuto").attr("disabled", false);
}
});
$("#data_rifiuto").on("dp.change", function() {
if($(this).val()){
$("#data_accettazione").attr("disabled", true);
}else{
$("#data_accettazione").attr("disabled", false);
}
});
$("#data_accettazione").trigger("dp.change");
$("#data_rifiuto").trigger("dp.change");
$("#codice_cig, #codice_cup").bind("keyup change", function(e) {
if ($("#codice_cig").val() == "" && $("#codice_cup").val() == "" ){
$("#id_documento_fe").prop("required", false);
}else{
$("#id_documento_fe").prop("required", true);
}
});
});
</script>';
//fatture, ordini collegate a questo preventivo //fatture, ordini collegate a questo preventivo
$elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idpreventivo` = '.prepare($id_record).') $elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idpreventivo` = '.prepare($id_record).')

View File

@ -218,13 +218,18 @@ echo '
echo ' echo '
<script> <script>
async function modificaRiga(button) {
function modificaRiga(button) {
var riga = $(button).closest("tr"); var riga = $(button).closest("tr");
var id = riga.data("id"); var id = riga.data("id");
var type = riga.data("type"); var type = riga.data("type");
openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type) // Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
// Apertura modal
if (valid) {
openModal("'.tr('Modifica riga').'", "'.$module->fileurl('row-edit.php').'?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type);
}
} }
function rimuoviRiga(button) { function rimuoviRiga(button) {