Added Spaces to IBAN for IBAN View in Address View and Form.php

This commit is contained in:
Luca Haid
2024-04-16 09:03:21 +02:00
parent 0913240593
commit 6ed26c9055
+153 -174
View File
@@ -472,201 +472,180 @@
var check = parseInt(iban.substr(2, 2)); var check = parseInt(iban.substr(2, 2));
var account = iban.substr(4); var account = iban.substr(4);
var searchRange = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(''); var searchRange = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split('');
//var replaceRange = []; //var replaceRange = [];
var checkStr = account + cc + "00"; var checkStr = account + cc + "00";
for(var i = 0; i <= 25; i++) { for(var i = 0; i <= 25; i++) {
checkStr = checkStr.replace(searchRange[i], i + 10); checkStr = checkStr.replace(searchRange[i], i + 10);
}; };
// make checksum // make checksum
var checksum = parseInt(checkStr.substr(0,1)); var checksum = parseInt(checkStr.substr(0,1));
for(pos = 1; pos < checkStr.length; pos++) { for(pos = 1; pos < checkStr.length; pos++) {
checksum *= 10; checksum *= 10;
checksum += parseInt(checkStr.substr(pos, 1)); checksum += parseInt(checkStr.substr(pos, 1));
checksum %= 97; checksum %= 97;
} }
if(98 - checksum == check) {
return true;
} else {
return false;
}
}
function validateIbanBic(iban, bic) {
if(!iban) return false;
iban = iban.toUpperCase().replace(/\s+/, '');
$.post("<?=self::getUrl("Address", "api")?>", {
do: "validateIbanBic",
iban: iban,
bic: bic
},
function(success) {
if(success.status == "OK") {
var data = success.result;
$("#bank-error").hide();
$("#bank-error").text("");
if(data.iban_correct && data.bic_correct && (!data.iban_sus || data.iban_sus === "www")) {
bankdata_valid = true;
$('#addressForm').submit();
return;
}
var bank_error = [];
if(!data.iban_correct) {
$("#bank_account_iban").addClass("invalid");
bank_error.push("Ungültige IBAN!");
}
if(data.iban_sus && data.iban_sus !== "www") {
$("#bank_account_iban").addClass("invalid");
bank_error.push("IBAN verdächtig (" + data.iban_sus + ")!");
}
if(!data.bic_correct) {
$("#bank_account_bic").addClass("invalid");
bank_error.push("Ungültige BIC!");
if(Array.isArray(data.bic)) {
bank_error.push(" Mögliche korrekte BIC: " + data.bic.join(", "));
}
}
$("#bank-error").html(bank_error.join("<br />\n"));
$("#bank-error").show();
$('html, body').animate( {scrollTop: $('#billing-data').offset().top - 230}, 200);
if(98 - checksum == check) {
return true;
} else { } else {
$("#bank-error").text("Beim Validieren der Bankdaten ist ein Fehler aufgetreten."); return false;
} }
}, }
"json"
); function validateIbanBic(iban, bic) {
if(!iban) return false;
iban = iban.toUpperCase().replace(/\s+/, '');
$.post("<?=self::getUrl("Address", "api")?>", {
do: "validateIbanBic",
iban: iban,
bic: bic
},
function(success) {
if(success.status == "OK") {
var data = success.result;
$("#bank-error").hide();
$("#bank-error").text("");
if(data.iban_correct && data.bic_correct && (!data.iban_sus || data.iban_sus === "www")) {
bankdata_valid = true;
$('#addressForm').submit();
return;
}
var bank_error = [];
if(!data.iban_correct) {
$("#bank_account_iban").addClass("invalid");
bank_error.push("Ungültige IBAN!");
}
if(data.iban_sus && data.iban_sus !== "www") {
$("#bank_account_iban").addClass("invalid");
bank_error.push("IBAN verdächtig (" + data.iban_sus + ")!");
}
if(!data.bic_correct) {
$("#bank_account_bic").addClass("invalid");
bank_error.push("Ungültige BIC!");
if(Array.isArray(data.bic)) {
bank_error.push(" Mögliche korrekte BIC: " + data.bic.join(", "));
}
}
$("#bank-error").html(bank_error.join("<br />\n"));
$("#bank-error").show();
$('html, body').animate( {scrollTop: $('#billing-data').offset().top - 230}, 200);
return false;
}
$('#addressForm').submit(function(e) {
$("#error").hide();
$("#bank-error").hide();
if($('#billing_type').val() == "sepa") {
console.log("bankdata_valid (1): " + bankdata_valid);
if(bankdata_valid) {
return true;
}
if(!validateIbanFormat($("#bank_account_iban").val())) {
$("#error").show();
console.log("nope");
}
console.log("bankdata_valid: " + bankdata_valid);
if($("#bank_account_iban").val() != "<?=$address->bank_account_iban?>" || $("#bank_account_bic").val() != "<?=$address->bank_account_bic?>") {
validateIbanBic($("#bank_account_iban").val(), $("#bank_account_bic").val());
} else {
return true;
}
// Format IBAN with Spaces
function formatIBAN(input) {
let iban = input.value.replace(/\s/g, '');
let formattedIBAN = '';
for (let i = 0; i < iban.length; i++) {
if (i > 0 && i % 4 === 0) {
formattedIBAN += ' ';
}
formattedIBAN += iban[i];
}
input.value = formattedIBAN;
}
$("#bank_account_iban").on("input", function () {
formatIBAN(this);
});
formatIBAN(document.getElementById('bank_account_iban'));
$('#addressForm').submit(function (e) {
$("#error").hide();
$("#bank-error").hide();
if ($('#billing_type').val() == "sepa") {
console.log("bankdata_valid (1): " + bankdata_valid);
if (bankdata_valid) {
return true;
}
if (!validateIbanFormat($("#bank_account_iban").val().replace(/\s/g, ''))) {
$("#error").show();
console.log("nope");
}
console.log("bankdata_valid: " + bankdata_valid);
if ($("#bank_account_iban").val().replace(/\s/g, '') != "<?=$address->bank_account_iban?>" || $("#bank_account_bic").val() != "<?=$address->bank_account_bic?>") {
validateIbanBic($("#bank_account_iban").val().replace(/\s/g, ''), $("#bank_account_bic").val());
} else { } else {
return true; $("#bank-error").text("Beim Validieren der Bankdaten ist ein Fehler aufgetreten.");
} }
},
"json"
);
$("#bank_account_iban").val($("#bank_account_iban").val().replace(/\s/g, ''));
e.preventDefault(); return false;
return false; }
function formatIBAN(input) {
let iban = input.value.replace(/\s/g, '');
let formattedIBAN = '';
for (let i = 0; i < iban.length; i++) {
if (i > 0 && i % 4 === 0) {
formattedIBAN += ' ';
} }
}); formattedIBAN += iban[i];
}
input.value = formattedIBAN;
}
$("#bank_account_iban").on("input", function () {
formatIBAN(this);
});
formatIBAN(document.getElementById('bank_account_iban'));
/* $('#addressForm').submit(function(e) {
* link autocomplete $("#error").hide();
*/ $("#bank-error").hide();
$("#bbank_account_iban").val($("#bank_account_iban").val().replace(/\s/g, ''));
$('.link-autocomplete').autoComplete(); if($('#billing_type').val() == "sepa") {
$('.link-autocomplete').keydown(function () { console.log("bankdata_valid (1): " + bankdata_valid);
if (event.keyCode == 13) { if(bankdata_valid) {
event.preventDefault(); return true;
return false;
} }
});
/* if(!validateIbanFormat($("#bank_account_iban").val())) {
* Links autocomplete $("#error").show();
*/ console.log("nope");
$('.link-autocomplete').on("autocomplete.select", function(evt, item) { }
autocompleteSelect(evt,item);
});
function autocompleteSelect(evt, item) { console.log("bankdata_valid: " + bankdata_valid);
if(item && item.value === 0) { if($("#bank_account_iban").val() != "<?=$address->bank_account_iban?>" || $("#bank_account_bic").val() != "<?=$address->bank_account_bic?>") {
$('.link-autocomplete').autoComplete('set', null); validateIbanBic($("#bank_account_iban").val(), $("#bank_account_bic").val());
return; } else {
return true;
}
e.preventDefault();
return false;
}
});
/*
* link autocomplete
*/
$('.link-autocomplete').autoComplete();
$('.link-autocomplete').keydown(function() {
if(event.keyCode == 13) {
event.preventDefault();
return false;
}
});
/*
* Links autocomplete
*/
$('.link-autocomplete').on("autocomplete.select", function(evt, item) {
autocompleteSelect(evt,item);
});
function autocompleteSelect(evt, item) {
if(item && item.value === 0) {
$('.link-autocomplete').autoComplete('set', null);
return;
}
var match = evt.currentTarget.id.match(/links_(\d+)_address_id/);
var link_num = match[1];
if(!link_num) {
console.log("Couldn't find selected Address");
}
addLink(Number(link_num) + 1);
} }
var match = evt.currentTarget.id.match(/links_(\d+)_address_id/); function addLink(linknum) {
var link_num = match[1]; if(!linknum) {
if(!link_num) { console.log("no linknum");
console.log("Couldn't find selected Address"); return false;
} }
addLink(Number(link_num) + 1);
}
function addLink(linknum) { if($("#links_" + linknum + "_address_id").length) {
if(!linknum) { console.log("gibs scho");
console.log("no linknum"); return false;
return false; }
}
if($("#links_" + linknum + "_address_id").length) { var new_link = '<div class="form-group row" id="link-' + linknum + '"> \
console.log("gibs scho");
return false;
}
var new_link = '<div class="form-group row" id="link-' + linknum + '"> \
<label class="col-lg-2 col-form-label" for="links_' + linknum + '_address_id"></label> \ <label class="col-lg-2 col-form-label" for="links_' + linknum + '_address_id"></label> \
<div class="col-lg-6"> \ <div class="col-lg-6"> \
<div class="input-group mb-3"> \ <div class="input-group mb-3"> \