1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-02-27 08:47:39 +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
do {
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>');
}
@ -40,14 +40,14 @@ function openModal(title, href) {
</div>';
// Lettura contenuto div
if (href.substr(0, 1) == '#') {
if (href.substr(0, 1) === '#') {
var data = $(href).html();
$(id).html(content.replace("|data|", data));
$(id).modal('show');
} else {
$.get(href, function (data, response) {
if (response == 'success') {
if (response === 'success') {
$(id).html(content.replace("|data|", data));
$(id).modal('show');
}
@ -65,7 +65,7 @@ function openLink(event, link) {
/**
* Funzione per far scrollare la pagina fino a un offset
* @param integer offset
* @param offset
*/
function scrollToOffset(offset) {
$('html,body').animate({
@ -80,11 +80,9 @@ function getUrlVars() {
var search = window.location.search.substring(1);
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 results;
}
// Data e ora (orologio)
@ -108,19 +106,18 @@ function session_set_array(session_array, value, inversed) {
* Funzione per impostare un valore ad una sessione
*/
function session_set(session_array, value, clear, reload) {
if (clear == undefined) {
if (clear === undefined) {
clear = 1;
}
if (reload == undefined) {
if (reload === undefined) {
reload = 0;
}
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();
}
});
}
@ -377,13 +374,14 @@ function buttonRestore(button, loadingResult) {
}
function submitAjax(form, data, callback, errorCallback) {
var valid = $(form).parsley().validate();
let valid = $(form).parsley().validate();
if (!valid) {
return valid;
}
if (!data) data = {};
if (valid) {
$("#main_loading").show();
content_was_modified = false;
// Fix per gli id di default
@ -400,13 +398,16 @@ function submitAjax(form, data, callback, errorCallback) {
data: data,
type: "post",
success: function (data) {
data = data.trim();
let response = data.trim();
if (data) {
response = JSON.parse(data);
if (callback) callback(response);
// Tentativo di conversione da JSON
try {
response = JSON.parse(response);
} catch (e) {
}
callback(response);
$("#main_loading").fadeOut();
renderMessages();
@ -419,7 +420,6 @@ function submitAjax(form, data, callback, errorCallback) {
if (errorCallback) errorCallback(data);
}
});
}
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).'",';
}
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: {
"wordMinLength": "'.tr('La password è troppo corta').'",
"wordMaxLength": "'.tr('La password è troppo lunga').'",

View File

@ -287,7 +287,8 @@ if (!empty($rs)) {
echo '
</table>';
}
?>
echo '
</div>
</div>
</div>
@ -295,52 +296,51 @@ if (!empty($rs)) {
</div>
</form>
<!-- RIGHE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Righe'); ?></h3>
<h3 class="panel-title">'.tr('Righe').'</h3>
</div>
<div class="panel-body">
<?php
<div class="panel-body">';
if (!$block_edit) {
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').'
</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').'">
<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').'
</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_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').'
</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_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').'
</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_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').'
</a>';
</button>';
}
?>
echo '
<div class="clearfix"></div>
<br>
<div class="row">
<div class="col-md-12">
<?php
<div class="col-md-12">';
include $docroot.'/modules/contratti/row-list.php';
include $structure->filepath('row-list.php');
?>
echo '
</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$" )}
<script type="text/javascript">
$(document).ready(function() {
$('#data_accettazione').on("dp.change", function() {
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() {
$("#data_accettazione").on("dp.change", function() {
if($(this).val()){
$('#data_rifiuto').attr('disabled', true);
$("#data_rifiuto").attr("disabled", true);
}else{
$('#data_rifiuto').attr('disabled', false);
$("#data_rifiuto").attr("disabled", false);
}
});
$('#data_rifiuto').on("dp.change", function() {
$("#data_rifiuto").on("dp.change", function() {
if($(this).val()){
$('#data_accettazione').attr('disabled', true);
$("#data_accettazione").attr("disabled", true);
}else{
$('#data_accettazione').attr('disabled', false);
$("#data_accettazione").attr("disabled", false);
}
});
$("#data_accettazione").trigger("dp.change");
$("#data_rifiuto").trigger("dp.change");
});
});
$('#idanagrafica_c').change(function() {
$("#idanagrafica_c").change(function() {
updateSelectOption("idanagrafica", $(this).val());
session_set('superselect,idanagrafica', $(this).val(), 0);
session_set("superselect,idanagrafica", $(this).val(), 0);
$("#idsede").selectReset();
});
});
$('#codice_cig, #codice_cup').bind("keyup change", function(e) {
$("#codice_cig, #codice_cup").bind("keyup change", function(e) {
if ($('#codice_cig').val() == '' && $('#codice_cup').val() == '' ){
$('#id_documento_fe').prop('required', false);
if ($("#codice_cig").val() == "" && $("#codice_cup").val() == "" ){
$("#id_documento_fe").prop("required", false);
}else{
$('#id_documento_fe').prop('required', true);
$("#id_documento_fe").prop("required", true);
}
});
</script>';
});
</script>
<?php
// Collegamenti diretti
// 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).')'.'

View File

@ -192,12 +192,18 @@ echo '
echo '
<script>
function modificaRiga(button) {
async function modificaRiga(button) {
var riga = $(button).closest("tr");
var id = riga.data("id");
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) {

View File

@ -33,8 +33,6 @@ $_SESSION['superselect']['permetti_movimento_a_zero'] = ($dir == 'uscita' ? true
</div>
<div class="panel-body">
<?php
if ($dir == 'entrata') {
$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>';
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').'
</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').'">
<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').'
</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_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').'
</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_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').'
</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_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').'
</a>';
</button>';
}
?>
</div>
@ -355,8 +353,9 @@ if (!$block_edit) {
<div class="col-md-12">
<?php
include $docroot.'/modules/ddt/row-list.php';
?>
include $structure->filepath('row-list.php');
echo '
</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$" )}
<script>
$('#idanagrafica').change(function() {
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);
session_set("superselect,idanagrafica", $(this).val(), 0);
$("#idsede_<?php echo $dir == 'uscita' ? 'partenza' : 'destinazione'; ?>").selectReset();
});
</script>
$("#idsede_'.($dir == 'uscita' ? 'partenza' : 'destinazione').'").selectReset();
});
</script>';
<?php
// Collegamenti diretti
// 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`');

View File

@ -254,12 +254,18 @@ echo '
echo '
<script>
function modificaRiga(button) {
async function modificaRiga(button) {
var riga = $(button).closest("tr");
var id = riga.data("id");
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) {

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' : ''; ?> " ]}
</div>
<?php
if ($record['stato'] != 'Bozza' && $record['stato'] != 'Annullata') {
$ricalcola = true;
@ -557,22 +556,21 @@ if ($tipodoc == 'Fattura accompagnatoria di vendita') {
</div>
</div>';
}
?>
echo '
</form>
<!-- RIGHE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Righe</h3>
<h3 class="panel-title">'.tr('Righe').'</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-12">
<div class="pull-left">
<?php
<div class="pull-left">';
if (!$block_edit) {
if (empty($record['ref_documento'])) {
if ($dir == 'entrata') {
@ -651,28 +649,29 @@ if (!$block_edit) {
$articoli = $dbo->fetchNum($art_query);
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').'
</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').'">
<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').'
</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_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').'
</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_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').'
</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_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').'
</a>';
</button>';
}
?>
</div>
@ -820,42 +819,39 @@ if (in_array($record[$field_name], $user->sedi)) {
<?php
}
echo '
echo '
<script>
function gestioneArticolo(button) {
gestioneRiga(button, "is_articolo");
}
$(".btn-sm[data-toggle=\"tooltip\"]").each(function() {
$(this).on("click", function() {
var form = $("#edit-form");
var btn = $(this);
function gestioneBarcode(button) {
gestioneRiga(button, "is_barcode");
}
var restore = buttonLoading(btn);
function gestioneSconto(button) {
gestioneRiga(button, "is_sconto");
}
var valid = submitAjax(form, {}, function() {
buttonRestore(btn, restore);
}, function() {
buttonRestore(btn, restore);
});
function gestioneDescrizione(button) {
gestioneRiga(button, "is_descrizione");
}
// Procedo al salvataggio solo se tutti i campi obbligatori sono compilati, altrimenti mostro avviso
//form.find("input:disabled, select:disabled").removeAttr("disabled");
async function gestioneRiga(button, options) {
// Salvataggio via AJAX
let valid = await salvaForm(button, $("#edit-form"));
if(!valid) {
swal({
type: "error",
title: "'.tr('Errore').'",
text: "'.tr('Alcuni campi obbligatori non sono stati compilati correttamente').'.",
});
// Apertura modal
if (valid) {
// Lettura titolo e chiusura tooltip
let title = $(button).tooltipster("content");
$(button).tooltipster("close")
$(document).one("show.bs.modal","#modals > div", function (e) {
return e.preventDefault();
});
// Apertura modal
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 () {
$("#data_registrazione").on("dp.change", function (e) {

View File

@ -353,13 +353,18 @@ echo '
echo '
<script>
function modificaRiga(button) {
async function modificaRiga(button) {
var riga = $(button).closest("tr");
var id = riga.data("id");
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) {

View File

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

View File

@ -180,30 +180,32 @@ echo '
if (!$block_edit) {
echo '
<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').'">
<div class="pull-left">';
echo '
<button class="btn btn-sm btn-primary tip" title="'.tr('Aggiungi articolo').'" onclick="gestioneArticolo(this)">
<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').'">
<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').'
</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_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').'
</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_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').'
</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_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').'
</a>';
</button>';
echo '
</div>';
@ -236,7 +238,58 @@ echo '
{( "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
// Fatture o ddt collegati a questo ordine
@ -296,25 +349,3 @@ if (!empty($elementi)) {
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
</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 '
<script>
function modificaRiga(button) {
async function modificaRiga(button) {
var riga = $(button).closest("tr");
var id = riga.data("id");
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) {

View File

@ -190,114 +190,138 @@ echo '
</div>
</form>
<?php
echo '
<!-- RIGHE -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Righe</h3>
<h3 class="panel-title">'.tr('Righe').'</h3>
</div>
<div class="panel-body">
<?php
<div class="panel-body">';
if (!$block_edit) {
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').'
</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').'">
<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').'
</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_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').'
</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_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').'
</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_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').'
</a>';
</button>';
}
?>
<!--div class="pull-right">
{( "name": "button", "type": "print", "id_module": "<?php echo $id_module; ?>", "id_record": "<?php echo $id_record; ?>" )}
</div-->
echo '
<div class="clearfix"></div>
<br>
<div class="row">
<div class="col-md-12">
<?php
<div class="col-md-12">';
include $docroot.'/modules/preventivi/row-list.php';
include $structure->filepath('row-list.php');
?>
echo '
</div>
</div>
</div>
</div>
{( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )}
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
<script type="text/javascript">
$(document).ready(function() {
$('#idanagrafica').change(function() {
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);
session_set("superselect,idanagrafica", $(this).val(), 0);
$("#idsede").selectReset();
});
$('#data_accettazione').on("dp.change", function() {
$("#data_accettazione").on("dp.change", function() {
if($(this).val()){
$('#data_rifiuto').attr('disabled', true);
$("#data_rifiuto").attr("disabled", true);
}else{
$('#data_rifiuto').attr('disabled', false);
$("#data_rifiuto").attr("disabled", false);
}
});
$('#data_rifiuto').on("dp.change", function() {
$("#data_rifiuto").on("dp.change", function() {
if($(this).val()){
$('#data_accettazione').attr('disabled', true);
$("#data_accettazione").attr("disabled", true);
}else{
$('#data_accettazione').attr('disabled', false);
$("#data_accettazione").attr("disabled", false);
}
});
$("#data_accettazione").trigger("dp.change");
$("#data_rifiuto").trigger("dp.change");
$('#codice_cig, #codice_cup').bind("keyup change", function(e) {
$("#codice_cig, #codice_cup").bind("keyup change", function(e) {
if ($('#codice_cig').val() == '' && $('#codice_cup').val() == '' ){
$('#id_documento_fe').prop('required', false);
if ($("#codice_cig").val() == "" && $("#codice_cup").val() == "" ){
$("#id_documento_fe").prop("required", false);
}else{
$('#id_documento_fe').prop('required', true);
$("#id_documento_fe").prop("required", true);
}
});
});
</script>
});
</script>';
{( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )}
{( "name": "log_email", "id_module": "$id_module$", "id_record": "$id_record$" )}
<?php
//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).')

View File

@ -218,13 +218,18 @@ echo '
echo '
<script>
function modificaRiga(button) {
async function modificaRiga(button) {
var riga = $(button).closest("tr");
var id = riga.data("id");
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) {