| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524 |
- var utilsSvc = angular.module('utilsSvc', []);
- utilsSvc.factory('utilsSvc', function($cookies, $rootScope, $http, $q,$window, $mdDialog, $location, $mdToast, $mdMedia) {
- var utilsSvc = {};
- utilsSvc.refreshTimeout = 20000;
- utilsSvc.adminTimeout = 5000;
- utilsSvc.alreadyShowingError = false;
-
- if (utilsSvc.refreshTimeout == 200000)
- alert("Togliere refreshtimeout di test");
- utilsSvc.interactiveRefreshTimeout = 1500;
- utilsSvc.isLoading = false;
- utilsSvc.timeoutPromise = null;
-
- utilsSvc.showConfirm = function(title, text, ev) {
- var confirm = $mdDialog.confirm(
- {onComplete: function afterShowAnimation(me,$event) {
- var $dialog = $event; //angular.element(document.querySelector('md-dialog'));
- var $actionsSection = $dialog.find('md-dialog-actions');
- var $cancelButton = $actionsSection.children()[0];
- var $confirmButton = $actionsSection.children()[1];
- angular.element($confirmButton).removeClass('md-focused');
- angular.element($cancelButton).addClass('md-focused');
- $cancelButton.focus();
- }})
- .title(title).htmlContent(text).ok(
- 'Ok').cancel('Annulla').multiple(true);
- if (typeof ev != "undefined")
- confirm.targetEvent(ev);
- return $mdDialog.show(confirm);
- }
- utilsSvc.showConfirmYesNo = function(title, text, ev) {
- var confirm = $mdDialog.confirm({onComplete: function afterShowAnimation() {
- var $dialog = angular.element(document.querySelector('md-dialog'));
- var $actionsSection = $dialog.find('md-dialog-actions');
- var $cancelButton = $actionsSection.children()[0];
- var $confirmButton = $actionsSection.children()[1];
- angular.element($confirmButton).removeClass('md-focused');
- angular.element($cancelButton).addClass('md-focused');
- $cancelButton.focus();
- }})
- .title(title).htmlContent(text).ok(
- 'Si').cancel('No').multiple(true);
- if (typeof ev != "undefined")
- confirm.targetEvent(ev);
- return $mdDialog.show(confirm);
- }
- utilsSvc.handleHttpError = function(error) {
- if (!utilsSvc.alreadyShowingError) {
- utilsSvc.alreadyShowingError = true;
- if (error.status == 401)
- utilsSvc.show(
- "Sessione scaduta o non valida: rieseguire la login: "
- + error.statusText).then(function() {
- utilsSvc.alreadyShowingError = false;
- $location.path("/");
- });
- else {
- var msg = error.statusText;
- if (error.data)
- msg = error.data;
- if (error.data.value)
- msg = error.data.value;
-
- var title = msg;
- if (error.status != 404)
- title = "Errore " + error.status
- + " durante la richiesta al server: "
- + msg;
-
- utilsSvc.show(title).then(function() {
- utilsSvc.alreadyShowingError = false;
- });
- }
- }
- }
- utilsSvc.CheckId = function(id) {
- if (typeof id == "undefined")
- return false;
- if (id == null || id == 0)
- return false;
- return true;
- }
- utilsSvc.showMessage = function(message) {
- return $mdToast.show($mdToast.simple({templateUrl : 'templates/toast-template.html', controller : 'ToastCtrl', message:message}).content(message));
- }
- utilsSvc.show = function(message) {
- return $mdToast.show($mdToast.simple({templateUrl : 'templates/toast-wait-template.html', controller : 'ToastCtrl', message:message}).content(message).hideDelay(0).action(
- "ok"));
- }
- utilsSvc.showForever = function(message) {
- $mdToast.show($mdToast.simple({templateUrl : 'templates/toast-template.html', controller : 'ToastCtrl', message:message}).content(message).hideDelay(0));
- }
- utilsSvc.cancelMessage = function() {
- $mdToast.hide();
- }
- utilsSvc.showWaitMessage = function(message) {
- $('#waitIndicator').show();
- }
- utilsSvc.cancelWaitMessage = function() {
- $('#waitIndicator').hide();
- }
- utilsSvc.resizeGrid = function(rows, rowHeight) {
- // This will adjust the css after the Data is loaded
- var newHeight = (rows * rowHeight) + 60;
- angular.element(document.getElementsByClassName('grid')[0]).css(
- 'height', newHeight + 'px');
- };
- utilsSvc.isEmpty = function(data) {
- return data == null || data == "";
- };
- utilsSvc.downloadFile = function(mimeType,data,filename) {
- // check for IE
- if (window.navigator.msSaveBlob) {
- blobObject = new Blob([data], {type: mimeType+";charset=utf-8"});
- window.navigator.msSaveOrOpenBlob(blobObject, filename);
- } else {
-
- //if (mimeType=="application/pdf"){
- var blob = new Blob([data], {type: mimeType+";charset=utf-8"});
- var link = document.createElement('a');
- link.href = window.URL.createObjectURL(blob);
- link.download = filename;
- link.click();
- // } else {
- // var a = document.createElement('a');
- // a.href = 'data:'+mimeType + "," + encodeURIComponent(data);
- // a.target = '_blank';
- // a.download = filename;
- //
- // document.body.appendChild(a);
- // a.click();
- // document.body.removeChild(a);
- // }
- }
- }
-
- utilsSvc.help = function(templateUrl, event) {
- $scope.help = function(ev) {
- var helpFile = 'help/' + templateUrl;
- $mdDialog.show({
- templateUrl : helpFile,
- controller : 'helpCtrl',
- targetEvent : ev
- });
- }
- }
- utilsSvc.dateDiff = function(d1, d2) {
- var delta = Math.abs(d2 - d1) / 1000;
- var days = Math.floor(delta / 86400);
- delta -= days * 86400;
- var hours = Math.floor(delta / 3600) % 24;
- delta -= hours * 3600;
- var minutes = Math.floor(delta / 60) % 60;
- delta -= minutes * 60;
- var seconds = Math.floor(delta % 60);
- var res = (days > 0 ? days + 'd' : '') + hours + 'h' + minutes + 'm'
- + seconds + 's';
- return res;
- }
- utilsSvc.decodeCircuitoSDD = function(cod) {
- if (typeof cod == "undefined")
- return "";
- if (cod == "1")
- return "RID SEPA";
- if (cod == "2")
- return "SDD";
- if (cod == "3")
- return "SDD Esteri";
- return "RID CBI";
- }
-
- utilsSvc.decodeTipologia = function(tipologia){
- if (tipologia=="BONIFICI")
- return "SCT";
- else if (tipologia=="RID")
- return "SDD";
- else if (tipologia=="AEA")
- return "SEDA";
- else if (tipologia=="BONIFICI_ESTERI")
- return "STPE";
- else if (tipologia=="DOM")
- return "DOM";
- else if (tipologia=="BONIFICI_INTERNI")
- return "SCT_INT";
- else
- return tipologia;
-
- return "";
- }
- utilsSvc.largeScreen =function(){
- return $mdMedia('gt-sm');
- }
- utilsSvc.veryLargeScreen =function(){
- return $mdMedia('gt-md');
- }
- utilsSvc.smallScreen =function(){
- return !$mdMedia('gt-sm');
- }
- utilsSvc.getGridHeight=function(){
- if (utilsSvc.smallScreen())
- return {'height': '40px', 'min-height':'40px'};
- else
- return {'height': '30px', 'min-height':'30px'};
- }
-
- utilsSvc.getGridWithButtonHeight=function(){
- if (utilsSvc.smallScreen())
- return {'height': '30px', 'min-height':'30px'};
- else
- return {'height': '30px', 'min-height':'30px'};
- }
-
- utilsSvc.controllaCF = function(cf){
- cf = cf.toUpperCase();
- if( cf == '' ) return true;
- if( ! /^[0-9A-Z]{16}$/.test(cf) )
- return false
- var map = [1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 1, 0, 5, 7, 9, 13, 15, 17,
- 19, 21, 2, 4, 18, 20, 11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23];
- var s = 0;
- for(var i = 0; i < 15; i++){
- var c = cf.charCodeAt(i);
- if( c < 65 )
- c = c - 48;
- else
- c = c - 55;
- if( i % 2 == 0 )
- s += map[c];
- else
- s += c < 10? c : c - 10;
- }
- var atteso = String.fromCharCode(65 + s % 26);
- if( atteso != cf.charAt(15) )
- return false
- return true;
- }
-
- utilsSvc.controllaPIVA = function (pi) {
- if( pi == '' ) return true;
- if( ! /^[0-9]{11}$/.test(pi) )
- return false
- var s = 0;
- for( i = 0; i <= 9; i += 2 )
- s += pi.charCodeAt(i) - '0'.charCodeAt(0);
- for(var i = 1; i <= 9; i += 2 ){
- var c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
- if( c > 9 ) c = c - 9;
- s += c;
- }
- var atteso = ( 10 - s%10 )%10;
- if( atteso != pi.charCodeAt(10) - '0'.charCodeAt(0) )
- return false;
- return true;
- }
-
-
- utilsSvc.isNumber=function(str){
- for (var i=0;i<str.length;i++)
- if ("0123456789".indexOf(str[i])==-1)
- return false;
- return true;
- }
-
- utilsSvc.allTrim=function(string) {
- return string.replace(/ /g, '')
- }
-
- utilsSvc.only=function(string, allowedChars){
- var res="";
- for (var i=0;i<string.length;i++)
- if (allowedChars.indexOf(string[i])>=0)
- res+=string[i];
- return res;
- }
-
- utilsSvc.controllaCFoPiva=function(txt) {
- if (txt==null|| txt=='')
- return true;
- if (txt.length==11)
- return utilsSvc.controllaPIVA(txt);
- if (txt.length==16)
- return utilsSvc.controllaCF(txt);
- return false;
- }
-
- utilsSvc.controlloIban1 = function(input) {
- var CODE_LENGTHS = {
- AD: 24, AE: 23, AT: 20, AZ: 28, BA: 20, BE: 16, BG: 22, BH: 22, BR: 29,
- CH: 21, CR: 21, CY: 28, CZ: 24, DE: 22, DK: 18, DO: 28, EE: 20, ES: 24,
- FI: 18, FO: 18, FR: 27, GB: 22, GI: 23, GL: 18, GR: 27, GT: 28, HR: 21,
- HU: 28, IE: 22, IL: 23, IS: 26, IT: 27, JO: 30, KW: 30, KZ: 20, LB: 28,
- LI: 21, LT: 20, LU: 20, LV: 21, MC: 27, MD: 24, ME: 22, MK: 19, MR: 27,
- MT: 31, MU: 30, NL: 18, NO: 15, PK: 24, PL: 28, PS: 29, PT: 25, QA: 29,
- RO: 24, RS: 22, SA: 24, SE: 24, SI: 19, SK: 24, SM: 27, TN: 24, TR: 26
- };
- var iban = String(input).toUpperCase().replace(/[^A-Z0-9]/g, ''), // keep only alphanumeric characters
- code = iban.match(/^([A-Z]{2})(\d{2})([A-Z\d]+)$/), // match and capture (1) the country code, (2) the check digits, and (3) the rest
- digits;
- // check syntax and length
- if (!code || iban.length !== CODE_LENGTHS[code[1]]) {
- return false;
- }
- // rearrange country code and check digits, and convert chars to ints
- digits = (code[3] + code[1] + code[2]).replace(/[A-Z]/g, function (letter) {
- return letter.charCodeAt(0) - 55;
- });
- // final check
- return utilsSvc.mod97(digits);
- }
-
- utilsSvc.mod97=function (string) {
- var checksum = string.slice(0, 2), fragment;
- for (var offset = 2; offset < string.length; offset += 7) {
- fragment = String(checksum) + string.substring(offset, offset + 7);
- checksum = parseInt(fragment, 10) % 97;
- }
- return checksum;
- }
-
-
-
- utilsSvc.controlloIban=function(iban) {
- if (iban==null || iban=="")
- return true;
-
- iban = utilsSvc.allTrim(iban.toUpperCase());
-
- if (utilsSvc.isNumber(iban.substring(0,2)))
- return false;
-
- if (utilsSvc.only(iban, "ABCDEFGHJKILMNOPQRSTUVWXYZ0123456789 ").length != iban.length)
- return false;
-
- if (iban.substr(0,2)=="IT" || iban.substr(0,2)=="SM") {
- if (iban.length!=27)
- return false;
- }
-
- var bufStringa = iban;
- bufStringa = bufStringa.substring(4,99) + bufStringa.substring(0,4);
- var checkIban="";
- for (var i=0;i<bufStringa.length;i++){
- console.log("Check i: " + i+ " > " + bufStringa.substring(i,i+1));
- switch(bufStringa.substring(i,i+1)) {
- case "A": checkIban+="10";break;
- case "B": checkIban+="11";break;
- case "C": checkIban+="12";break;
- case "D": checkIban+="13";break;
- case "E": checkIban+="14";break;
- case "F": checkIban+="15";break;
- case "G": checkIban+="16";break;
-
- case "H": checkIban+="17";break;
- case "I": checkIban+="18";break;
- case "J": checkIban+="19";break;
- case "K": checkIban+="20";break;
- case "L": checkIban+="21";break;
- case "M": checkIban+="22";break;
- case "N": checkIban+="23";break;
- case "O": checkIban+="24";break;
- case "P": checkIban+="25";break;
- case "Q": checkIban+="26";break;
- case "R": checkIban+="27";break;
- case "S": checkIban+="28";break;
- case "T": checkIban+="29";break;
- case "U": checkIban+="30";break;
- case "V": checkIban+="31";break;
- case "W": checkIban+="32";break;
- case "X": checkIban+="33";break;
- case "Y": checkIban+="34";break;
- case "Z": checkIban+="35";break;
- default: checkIban+=bufStringa.substring(i,i+1);break;
- }
- }
- return utilsSvc.validateIban(checkIban, 97)==1
-
- }
-
- utilsSvc.validateIban=function(iban, modulo){
- var bufModulo=0;
- var i=1;
- var numero;
- do {
- if (i==1) {
- numero=parseFloat(iban.substring(i-1,i-1+9));
- i=10
- } else {
- numero=parseFloat(bufModulo.toString()+iban.substring(i-1,i-1+9-bufModulo.toString().length))
- i+=9-bufModulo.toString().length;
- }
-
- bufModulo = numero % modulo;
- } while (i<=iban.length);
-
- return bufModulo
- }
-
- utilsSvc.controlloCin=function(cin, abi, cab, conto) {
- var coordinate=abi.padZero(5) + cab.padZero(5)+conto.toUpperCase().padZero(12);
- var pari=false;
- var sommaCaratteri=0
- for(var i=1;i<=22;i++) {
- var carattere=coordinate.substring(i-1,i);
-
- pari = (i % 2) == 0;
-
- switch(carattere){
- case "A","0": sommaCaratteri+=(pari? 0: 1);break;
- case "B","1": sommaCaratteri+=(pari? 1: 0);break;
- case "C","2": sommaCaratteri+=(pari? 2: 5);break;
- case "D","3": sommaCaratteri+=(pari? 3: 7);break;
- case "E","4": sommaCaratteri+=(pari? 4: 9);break;
- case "F","5": sommaCaratteri+=(pari? 5: 13);break;
- case "G","6": sommaCaratteri+=(pari? 6: 15);break;
- case "H","7": sommaCaratteri+=(pari? 7: 17);break;
- case "I","8": sommaCaratteri+=(pari? 8: 19);break;
- case "J","9": sommaCaratteri+=(pari? 9: 21);break;
- case "K": sommaCaratteri+=(pari? 10: 2);break;
- case "L": sommaCaratteri+=(pari? 11: 4);break;
- case "M": sommaCaratteri+=(pari? 12: 18);break;
- case "N": sommaCaratteri+=(pari? 13: 20);break;
- case "O": sommaCaratteri+=(pari? 14: 11);break;
- case "P": sommaCaratteri+=(pari? 15: 3);break;
- case "Q": sommaCaratteri+=(pari? 16: 6);break;
- case "R": sommaCaratteri+=(pari? 17: 8);break;
- case "S": sommaCaratteri+=(pari? 18: 12);break;
- case "T": sommaCaratteri+=(pari? 19: 14);break;
- case "U": sommaCaratteri+=(pari? 20: 16);break;
- case "V": sommaCaratteri+=(pari? 21: 10);break;
- case "W": sommaCaratteri+=(pari? 22: 22);break;
- case "X": sommaCaratteri+=(pari? 23: 25);break;
- case "Y": sommaCaratteri+=(pari? 24: 24);break;
- case "K": sommaCaratteri+=(pari? 25: 23);break;
- }
- }
-
- var restoSommaCaratteri = sommaCaratteri % 26;
-
- switch(restoSommaCaratteri) {
- case 0: return "A"==cin;
- case 1: return "B"==cin;
- case 2: return "C"==cin;
- case 3: return "D"==cin;
- case 4: return "E"==cin;
- case 5: return "F"==cin;
- case 6: return "G"==cin;
- case 7: return "H"==cin;
- case 8: return "I"==cin;
- case 9: return "J"==cin;
- case 10: return "K"==cin;
- case 11: return "L"==cin;
- case 12: return "M"==cin;
- case 13: return "N"==cin;
- case 14: return "O"==cin;
- case 15: return "P"==cin;
- case 16: return "Q"==cin;
- case 17: return "R"==cin;
- case 18: return "S"==cin;
- case 19: return "T"==cin;
- case 20: return "U"==cin;
- case 21: return "V"==cin;
- case 22: return "W"==cin;
- case 23: return "X"==cin;
- case 24: return "Y"==cin;
- case 25: return "Z"==cin;
- default: return false;
- }
-
-
- }
-
-
- utilsSvc.checkValuta=function(event, len){
- if ("0123456789,.".indexOf(event.key)==-1 || event.target.value.length>=len)
- event.preventDefault();
- }
-
-
- return utilsSvc;
- })
- .controller('ToastCtrl', function($scope, $mdToast, $mdDialog, message) {
- $scope.message = message;
- $scope.closeToast = function() {
- $mdToast
- .hide()
- };
- });
|