Skip to content

Commit c807d83

Browse files
committed
fix: salvataggio fatture
1 parent a8216cc commit c807d83

1 file changed

Lines changed: 82 additions & 52 deletions

File tree

plugins/registrazioni/edit.php

Lines changed: 82 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -168,71 +168,101 @@ function validateConti() {
168168
let valid = true;
169169
let errors = [];
170170
171-
// Controlla ogni riga
172-
$("input[name^=\'is_cespite\']").each(function() {
173-
const id = $(this).attr("name").match(/\[(.*?)\]/)[1];
174-
const is_cespite = $(this).val() == 1;
175-
176-
let conto_selezionato = null;
177-
178-
if (is_cespite) {
179-
// Verifica conto cespite
180-
const select_cespite = $("#select-conto-cespite-" + id).find("select");
181-
conto_selezionato = select_cespite.val();
182-
183-
if (!conto_selezionato || conto_selezionato == \'\') {
184-
valid = false;
185-
errors.push(\'Riga \' + id + \': selezionare un conto cespite\');
186-
select_cespite.addClass(\'parsley-error\');
187-
} else {
188-
select_cespite.removeClass(\'parsley-error\');
189-
}
190-
} else {
191-
// Verifica conto standard
192-
const select_standard = $("#select-conto-standard-" + id).find("select");
193-
conto_selezionato = select_standard.val();
194-
195-
if (!conto_selezionato || conto_selezionato == \'\') {
196-
valid = false;
197-
errors.push(\'Riga \' + id + \': selezionare un conto\');
198-
select_standard.addClass(\'parsley-error\');
171+
try {
172+
// Controlla ogni riga
173+
$("input[name^=\'is_cespite\']").each(function() {
174+
const id = $(this).attr("name").match(/\[(.*?)\]/)[1];
175+
const is_cespite = $(this).val() == 1;
176+
177+
let conto_selezionato = null;
178+
179+
if (is_cespite) {
180+
// Verifica conto cespite
181+
const select_cespite = $("#select-conto-cespite-" + id).find("select");
182+
if (select_cespite.length > 0) {
183+
conto_selezionato = select_cespite.val();
184+
185+
if (!conto_selezionato || conto_selezionato == \'\') {
186+
valid = false;
187+
errors.push(\'Riga \' + id + \': selezionare un conto cespite\');
188+
select_cespite.addClass(\'parsley-error\');
189+
} else {
190+
select_cespite.removeClass(\'parsley-error\');
191+
}
192+
}
199193
} else {
200-
select_standard.removeClass(\'parsley-error\');
194+
// Verifica conto standard
195+
const select_standard = $("#select-conto-standard-" + id).find("select");
196+
if (select_standard.length > 0) {
197+
conto_selezionato = select_standard.val();
198+
199+
if (!conto_selezionato || conto_selezionato == \'\') {
200+
valid = false;
201+
errors.push(\'Riga \' + id + \': selezionare un conto\');
202+
select_standard.addClass(\'parsley-error\');
203+
} else {
204+
select_standard.removeClass(\'parsley-error\');
205+
}
206+
}
201207
}
202-
}
203-
});
204-
205-
if (!valid) {
206-
swal({
207-
type: "error",
208-
title: "<?php echo tr(\'Errori di validazione\'); ?>",
209-
html: "<?php echo tr(\'Correggere i seguenti errori:\'); ?><br><ul><li>" + errors.join("</li><li>") + "</li></ul>"
210208
});
209+
210+
if (!valid && errors.length > 0) {
211+
swal({
212+
type: "error",
213+
title: "<?php echo tr(\'Errori di validazione\'); ?>",
214+
html: "<?php echo tr(\'Correggere i seguenti errori:\'); ?><br><ul><li>" + errors.join("</li><li>") + "</li></ul>"
215+
});
216+
}
217+
} catch (e) {
218+
console.error(\'Errore nella validazione dei conti:\', e);
219+
// In caso di errore, permetti il submit normale
220+
valid = true;
211221
}
212222
213223
return valid;
214224
}
215225
216226
// Gestione del reset del conto quando si cambia lo stato del cespite
217227
$(document).ready(function() {
218-
// Override del submit del form per aggiungere validazione personalizzata
219-
$(\'form\').off(\'submit\').on(\'submit\', function(e) {
220-
e.preventDefault();
228+
// Aggiungi validazione personalizzata solo se siamo nel plugin registrazioni
229+
if (window.location.href.indexOf(\'id_plugin=<?php echo $id_plugin; ?>\') > -1 &&
230+
$(\'input[name="op"][value="change-conto"]\').length > 0) {
221231
222-
// Prima validazione Parsley standard
223-
if (!$(this).parsley().validate()) {
224-
return false;
225-
}
232+
console.log(\'Plugin registrazioni: attivazione validazione personalizzata\');
226233
227-
// Poi validazione personalizzata per i conti
228-
if (!validateConti()) {
229-
return false;
230-
}
234+
// Override del submit del form SOLO per il plugin registrazioni
235+
$(\'form[action=""]\').off(\'submit.registrazioni\').on(\'submit.registrazioni\', function(e) {
236+
console.log(\'Plugin registrazioni: validazione submit\');
231237
232-
// Se tutto è valido, procedi con il submit
233-
this.submit();
234-
return true;
235-
});
238+
// Prima validazione Parsley standard
239+
if (!$(this).parsley().validate()) {
240+
console.log(\'Plugin registrazioni: validazione Parsley fallita\');
241+
return false;
242+
}
243+
244+
// Poi validazione personalizzata per i conti
245+
if (!validateConti()) {
246+
console.log(\'Plugin registrazioni: validazione conti fallita\');
247+
return false;
248+
}
249+
250+
console.log(\'Plugin registrazioni: validazione completata, submit in corso\');
251+
252+
// Se tutto è valido, rimuovi il listener e procedi con il submit
253+
$(this).off(\'submit.registrazioni\');
254+
255+
// Previeni il loop infinito
256+
e.preventDefault();
257+
e.stopPropagation();
258+
259+
// Submit manuale
260+
this.submit();
261+
return false;
262+
});
263+
} else {
264+
console.log(\'Plugin registrazioni: validazione personalizzata non attivata\');
265+
}
236266
237267
$("input[name^=\'is_cespite\']").change(function() {
238268
const id = $(this).attr("name").match(/\[(.*?)\]/)[1];

0 commit comments

Comments
 (0)