app.controller('ricercaDisposizioniCtrl',	

function ($scope,$http,$cookies,$window, $location,$timeout, $mdDialog, $q, ComboManager,ProvenienzaDisposizioni, UserManager, FunzioniOrdinanti, utilsSvc, userService) {
	
	var vm=this;
	
	vm.funzioniOrdinanti=new Array();
	vm.tipiDisposizione=new Array();
	vm.provenienza=new Array();
	vm.causaleStorno=new Array();
	
	vm.filter = userService.getFilter();

	vm.appVariables={};
	
	vm.opzioni ={
		orderFunzioniOrdinante:0,
		utenteResponsabileTabellaUtentiFunzioniOK: false,	
	
	}
	
	vm.init = function() {
		UserManager.AppVariables().$promise.then(function(data) {
			vm.appVariables = data;
			vm.getTipologie(vm.appVariables);
		});
		FunzioniOrdinanti.ListAllForUser({start:0,length:99999,orderBy:'funzioneOrdinante'}).$promise.then(function(data){
			vm.funzioniOrdinanti = vm.funzioniOrdinanti.concat(data);
		});
		
		vm.cambiaTipoDisposizione();
	}
	
	vm.checkDigit=function(event, len){
		if (event.key=="Backspace" || event.key=="ArrowLeft" || event.key=="ArrowRight" || event.key=="Tab")
			return;
		if ("0123456789,.".indexOf(event.key)==-1 || event.target.value.length>=len)
			event.preventDefault();
	}

	vm.onlyDigit=function(event, len){
		if (event.key=="Backspace" || event.key=="ArrowLeft" || event.key=="ArrowRight" || event.key=="Tab")
			return;
		if ("0123456789".indexOf(event.key)==-1 || event.target.value.length>=len)
			event.preventDefault();
	}

	
	vm.checkImporto = function($event) {	
		var dataField = $event.target;
		var fieldName = dataField.getAttribute("ng-model");
		fieldName = fieldName.substring(fieldName.indexOf(".") + 1);
		
		var importo = $scope.$eval( dataField.getAttribute("ng-model"));
		if (importo==null) {
			$event.target.value ='';
			 return;
		} else {
			$event.target.value =  importo.toCurrency().formatAsCurrency(); 
		}
			
	}
	
	vm.cambiaTipoDisposizione = function(){
	    var tipo='';
		if (vm.filter.tipoDisposizione=='Pagamenti SCT'){
			vm.causaleStorno = new Array();
			tipo='Bonifici';
		}
		if (vm.filter.tipoDisposizione=='SEDA')
			tipo='AEA';
		if (vm.filter.tipoDisposizione=='Incassi SDD' || vm.filter.tipoDisposizione=='SDD')
			tipo='RID';
		
		if (tipo!='') {
			ProvenienzaDisposizioni.List({type:tipo}).$promise.then(function(data){
				vm.provenienza = data;				
			});
			if (tipo=='AEA') {
				ComboManager.CausaliEsiti().$promise.then(
						function(data){
							vm.causaleStorno=data;
						}
				)
			}
			else if (tipo=='RID'){
				ComboManager.List({type: 'CausaleStorno', tipologia:tipo})
				.$promise.then(
					function(data){
						vm.causaleStorno = data;
					}
				);
			} else 
				vm.causaleStorno = new Array();
		}
		
	}
	
	vm.getTipologie = function(appvariables) {
		vm.tipologie=new Array();
		vm.tipologie.push('Incassi SDD');
		vm.tipologie.push('SDD Esteri');
		vm.tipologie.push('SEDA');
		vm.tipologie.push('Pagamenti SCT');
		vm.tipologie.push('Pagamenti DOM');
		vm.tipologie.push('Pagamenti INPS');
		vm.tipologie.push('Pagamenti SCT Esteri');
		vm.tipologie.push('Assegni Intesa');
		if ([ "UO", "UR", "VI"].indexOf(appvariables.profiloLocale)>=0) {
			vm.tipologie=new Array();
			if (appvariables.abilitaBonificiEsteri)
				vm.tipologie.push('Pagamenti esteri');
			if(appvariables.abilitaRID) {
				vm.tipologie.push('Incassi SDD');
				vm.tipologie.push('SDD Esteri');
			}
			if(appvariables.abilitaAEA)
				vm.tipologie.push('SEDA');
			if (appvariables.abilitaBonifici) {
				vm.tipologie.push('Pagamenti SCT');
				vm.tipologie.push('Pagamenti DOM');
				
			}
		};
		if (appvariables.profiloLocale == 'DF') {
			vm.tipologie=new Array();
			vm.tipologie.push('Pagamenti SCT');
			vm.tipologie.push('Pagamenti DOM');
			if (appvariables.abilitaBonificiEsteri)
				vm.tipologie.push('Pagamenti esteri');
		}
	}
	
	vm.ricercaDisposizioni = function() {
		vm.filter.selectedIds=[];
		userService.setFilter(vm.filter);
		if (vm.filter.tipoDisposizione=='Incassi SDD')
			$location.path('/incassiSDD').search({'filter':'1'});
		if (vm.filter.tipoDisposizione=='Pagamenti SCT')
			$location.path('/pagamentiSCT').search({'filter':'1'});
		if (vm.filter.tipoDisposizione=='Pagamenti INPS')
			$location.path('/pagamentiSCT').search({'filter':'2','tipoChiamata':'INPS'});
		if (vm.filter.tipoDisposizione=='SEDA')
			$location.path('/allineamentoSEDA').search({'filter':'1'});
		if (vm.filter.tipoDisposizione=='Pagamenti DOM')
			$location.path('/pagamentiDOM').search({'filter':'1'});
		if (vm.filter.tipoDisposizione=='Pagamenti SCT Esteri')
			$location.path('/pagamentiSCT_ESTERI').search({'filter':'1'});
		if (vm.filter.tipoDisposizione=='Assegni Intesa')
			$location.path('/AssegniIntesa').search({'filter':'1'});
		if (vm.filter.tipoDisposizione=='SDD Esteri')
			$location.path('/incassiSDDEsteri').search({'filter':'1'});
		
	}
	
	vm.clearFilter=function() {
		vm.filter = userService.clearFilter();
	}
	
	vm.init();
	
});
