Skip to content

Commit dc2d3d6

Browse files
committed
fix: miglioria avviso banca addebito non impostata su fatture con metodo di pagamento Ri.Ba.
1 parent a68920c commit dc2d3d6

3 files changed

Lines changed: 77 additions & 2 deletions

File tree

modules/fatture/edit.php

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,11 +1011,72 @@
10111011
echo '
10121012
<script type="text/javascript">
10131013
1014+
// Imposta la direzione del documento nella sessione
1015+
session_set("superselect,dir", "'.$dir.'", 0);
1016+
1017+
// Imposta la banca controparte nella sessione
1018+
session_set("superselect,id_banca_controparte", $("#id_banca_controparte").val(), 0);
1019+
1020+
// Funzione per aggiornare il testo del pagamento in base alla banca
1021+
function aggiornaTestoPagamento() {
1022+
var bancaVal = $("#id_banca_controparte").val();
1023+
var pagamentoData = $("#idpagamento").selectData();
1024+
var bancaMancante = !bancaVal || bancaVal == "" || bancaVal == "null";
1025+
1026+
console.log("DEBUG pagamentoData completo:", JSON.stringify(pagamentoData));
1027+
console.log("DEBUG codice_modalita_pagamento_fe:", pagamentoData ? pagamentoData.codice_modalita_pagamento_fe : "N/A");
1028+
console.log("DEBUG bancaVal:", bancaVal, "bancaMancante:", bancaMancante);
1029+
1030+
if (pagamentoData && pagamentoData.codice_modalita_pagamento_fe == "MP12") {
1031+
var avviso = " ('.tr('Nessuna banca di addebito selezionata').')";
1032+
var testoOriginale = pagamentoData.text || "";
1033+
var descrizioneBase = (pagamentoData.descrizione || "").replace(avviso, "");
1034+
1035+
// Rimuovi avviso esistente dal testo
1036+
var testoSenzaAvviso = testoOriginale.replace(avviso, "");
1037+
1038+
if (bancaMancante) {
1039+
// Aggiungi avviso prima della chiusura del link </a> o alla fine
1040+
var nuovoTesto;
1041+
if (testoSenzaAvviso.indexOf("</a>") !== -1) {
1042+
nuovoTesto = testoSenzaAvviso.replace("</a>", avviso + "</a>");
1043+
} else {
1044+
nuovoTesto = testoSenzaAvviso + avviso;
1045+
}
1046+
1047+
var nuovoData = $.extend({}, pagamentoData);
1048+
nuovoData.text = nuovoTesto;
1049+
nuovoData.descrizione = descrizioneBase + avviso;
1050+
1051+
$("#idpagamento").selectSetNew(pagamentoData.id, nuovoTesto, nuovoData);
1052+
} else {
1053+
var nuovoData = $.extend({}, pagamentoData);
1054+
nuovoData.text = testoSenzaAvviso;
1055+
nuovoData.descrizione = descrizioneBase;
1056+
1057+
$("#idpagamento").selectSetNew(pagamentoData.id, testoSenzaAvviso, nuovoData);
1058+
}
1059+
}
1060+
}
1061+
1062+
// Controllo iniziale al caricamento
1063+
$(document).ready(function() {
1064+
setTimeout(function() {
1065+
aggiornaTestoPagamento();
1066+
}, 500);
1067+
});
1068+
10141069
$("#idtipodocumento").change(function() {
10151070
updateSelectOption("idtipodocumento", $(this).val());
10161071
session_set("superselect,idtipodocumento",$(this).val(), 0);
10171072
});
10181073
1074+
$("#id_banca_controparte").change(function() {
1075+
session_set("superselect,id_banca_controparte", $(this).val(), 0).then(function() {
1076+
aggiornaTestoPagamento();
1077+
});
1078+
});
1079+
10191080
$("#idanagrafica").change(function() {
10201081
updateSelectOption("idanagrafica", $(this).val());
10211082
session_set("superselect,idanagrafica", $(this).val(), 0);

modules/fatture/init.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
$dir = 'uscita';
3030
}
3131

32+
$superselect['dir'] = $dir;
33+
3234
if (!empty($id_record)) {
3335
$fattura = Fattura::with('tipo', 'stato')->find($id_record);
3436
$dir = $fattura->direzione;
@@ -101,6 +103,7 @@
101103
}
102104

103105
$superselect['idtipodocumento'] = $record['idtipodocumento'];
106+
$superselect['id_banca_controparte'] = $record['id_banca_controparte'];
104107

105108
$is_anagrafica_deleted = !$fattura->anagrafica;
106109
}

modules/pagamenti/ajax/select.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@
3636
`banca_vendite`.`id` AS id_banca_vendite,
3737
CONCAT(`banca_vendite`.`nome`, ' - ', `banca_vendite`.`iban`) AS descrizione_banca_vendite,
3838
`banca_acquisti`.`id` AS id_banca_acquisti,
39-
CONCAT(`banca_acquisti`.`nome`, ' - ', `banca_acquisti`.`iban`) AS descrizione_banca_acquisti,
40-
`banca_cliente`.`id` AS id_banca_cliente
39+
CONCAT(`banca_acquisti`.`nome`, ' - ', `banca_acquisti`.`iban`) AS descrizione_banca_acquisti
4140
FROM `co_pagamenti`
4241
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).')
4342
LEFT JOIN `co_banche` banca_cliente ON `banca_cliente`.`id_anagrafica` = '.prepare($superselect['idanagrafica']).' AND `banca_cliente`.`deleted_at` IS NULL
@@ -67,6 +66,18 @@
6766
);
6867
$rs = $data['results'];
6968

69+
// Controllo metodi di pagamento con Ri.Ba. per le fatture di vendita
70+
if (!empty($superselect['dir']) && $superselect['dir'] == 'entrata') {
71+
$id_banca_controparte = $superselect['id_banca_controparte'] ?? '';
72+
$banca_mancante = empty($id_banca_controparte) || $id_banca_controparte == 'null';
73+
74+
foreach ($rs as $k => $r) {
75+
if ($r['codice_modalita_pagamento_fe'] == 'MP12' && $banca_mancante) {
76+
$rs[$k]['text'] = $r['descrizione'].' '.tr('(Nessuna banca di addebito selezionata)');
77+
}
78+
}
79+
}
80+
7081
$results = [
7182
'results' => $rs,
7283
'recordsFiltered' => $data['recordsFiltered'],

0 commit comments

Comments
 (0)