var app=angular.module("telechargement",["ngResource","ngRoute","npc","ui.bootstrap","selectCustom"]);app.config(["$routeProvider",telechargementRoutes]); app.controller("TelechargementMasseController",["$scope","$http","$location","$sce",function($scope,$http,$location,$sce){$scope.highlight=function(text,search){if(!search)return $sce.trustAsHtml(text);return $sce.trustAsHtml(text.replace(new RegExp(search,"gi"),function(match){return"\x3cb\x3e"+match+"\x3c/b\x3e"}))};var telechargementCtl=this;$scope.filteredList=[];$scope.listeComptesSelectionnes={};$scope.listeDateComptesDernierTelechargement={};$scope.listeDateComptesSelectionnes={};$scope.listeComptesSelectionnesDate= {};$scope.disabledButtonCheckboxes=true;$scope.disabledButtonPeriode=false;$scope.formatChange=false;$scope.periodeChange=false;$scope.resetClicked=false;$scope.options={};telechargementCtl.selectedCheckBoxAll=false;telechargementCtl.selectedRadio=null;telechargementCtl.listeComptes=[];telechargementCtl.startDate=null;telechargementCtl.endDate=null;telechargementCtl.searchText="";telechargementCtl.selectedFormat="";telechargementCtl.selectedRadioFlagShow=true;var formatsDefault=[{format:"xlsx",libelle:"XLSX (Excel)"}, {format:"csv",libelle:"CSV"},{format:"ofx",libelle:"OFX (Quicken/Money/Isa Compta)"}];var formatsPrefereDefault="xlsx";telechargementCtl.pagination={itemsPerPage:20,currentPage:1,label:"comptes"};telechargementCtl.initDate=function(){var today=new Date;telechargementCtl.endDate=(new Date(today.getFullYear(),today.getMonth(),(new Date(Date.now())).getDate()-1)).toLocaleDateString("fr-FR").replace(/[^ -~]/g,"");var startDate=new Date(today.getFullYear(),today.getMonth()-12,1);telechargementCtl.limitDate= startDate.toLocaleDateString("fr-FR").replace(/[^ -~]/g,"");telechargementCtl.startDate=startDate.toLocaleDateString("fr-FR").replace(/[^ -~]/g,"");$scope.options={startDate:telechargementCtl.startDate,endDate:telechargementCtl.endDate,todayBtn:false}};telechargementCtl.init=function(data){if(!data){console.error("Les donn\u00e9es re\u00e7ues sont null");return}telechargementCtl.listeComptes=data.comptesAExporter;if(typeof data.formats!="undefined"&&data.formats!=null&&data.formats.length!=null&& data.formats.length>0)telechargementCtl.formats=data.formats;else telechargementCtl.formats=formatsDefault;if(typeof data.formatPrefere!="undefined"&&data.formatPrefere!=null)telechargementCtl.formatPrefere=data.formatPrefere;else telechargementCtl.formatPrefere=formatsPrefereDefault;telechargementCtl.selectedFormat=telechargementCtl.formatPrefere;telechargementCtl.dateDernierTelechargementPeriode;telechargementCtl.initDate();telechargementCtl.selectedRadio="1";telechargementCtl.radioSelectCheckStat(telechargementCtl.selectedRadioFlagShow); for(var index in telechargementCtl.listeComptes){var numeroCompte=telechargementCtl.listeComptes[index].compte.numeroCompte;var dateDernierTelechargement=telechargementCtl.listeComptes[index].dateDernierTelechargement;$scope.listeComptesSelectionnes[numeroCompte]=false;$scope.listeDateComptesDernierTelechargement[numeroCompte]=dateDernierTelechargement}};telechargementCtl.reset=function(){for(var index in telechargementCtl.listeComptes){var numeroCompte=telechargementCtl.listeComptes[index].compte.numeroCompte; $scope.listeComptesSelectionnes[numeroCompte]=false}$scope.listeDateComptesSelectionnes={};$scope.listeComptesSelectionnesDate={};$scope.disabledButtonCheckboxes=true;$scope.disabledButtonPeriode=true;$scope.formatChange=false;$scope.periodeChange=false;telechargementCtl.selectedFormat=telechargementCtl.formatPrefere;telechargementCtl.initDate();telechargementCtl.searchText="";telechargementCtl.pagination["currentPage"]=1;telechargementCtl.selectedRadioFlagShow=true;telechargementCtl.selectedRadio= "1";telechargementCtl.selectedCheckBoxAll=false;telechargementCtl.radioSelectCheckStat(telechargementCtl.selectedRadioFlagShow)};var formatDateTodayTmp=function(date){var today=new Date(date);var dd=today.getDate();var mm=today.getMonth()+1;var yyyy=today.getFullYear();if(dd<10)dd="0"+dd;if(mm<10)mm="0"+mm;var today=dd+"/"+mm+"/"+yyyy;return today};var addMonths=function(date,months){var result=new Date(date),expectedMonth=((date.getMonth()+months)%12+12)%12;result.setMonth(result.getMonth()+months); if(result.getMonth()!==expectedMonth)result.setDate(0);return formatDateTodayTmp(result)};telechargementCtl.changeCheckBoxAll=function(){var checkBoxAllSelectedStat=telechargementCtl.checkBoxAllSelectedStat();if(checkBoxAllSelectedStat)for(var key in $scope.listeComptesSelectionnes){$scope.listeComptesSelectionnes[key]=false;telechargementCtl.changeDateDernierTelechargementPeriode(key,$scope.listeDateComptesDernierTelechargement[key])}else for(var key in $scope.listeComptesSelectionnes){$scope.listeComptesSelectionnes[key]= true;telechargementCtl.changeDateDernierTelechargementPeriode(key,$scope.listeDateComptesDernierTelechargement[key])}};telechargementCtl.checkBoxAllSelectedStat=function(){var checkBoxAllSelected=true;for(var key in $scope.listeComptesSelectionnes)if(!$scope.listeComptesSelectionnes[key])checkBoxAllSelected=false;return checkBoxAllSelected};telechargementCtl.changeDateDernierTelechargementPeriode=function(id,date){if(date==="null"||date===undefined||date==null)$scope.listeDateComptesSelectionnes[id]= addMonths(new Date((new Date).getFullYear(),(new Date).getMonth()-1,1),-12);else $scope.listeDateComptesSelectionnes[id]=date;var dateDernierTelechargementPeriodeTmp="";var flagNbCompte;var selectedRadioFlagShowTmp=true;telechargementCtl.showDateDernierTelechargementPeriode=true;$scope.listeComptesSelectionnesDate[id]=date;for(var key in $scope.listeComptesSelectionnes)if(flagNbCompte&&$scope.listeComptesSelectionnes[key]===true&&$scope.listeComptesSelectionnesDate[key]!=null){dateDernierTelechargementPeriodeTmp= "";selectedRadioFlagShowTmp=true}else if($scope.listeComptesSelectionnes[key]===true){flagNbCompte=true;if($scope.listeComptesSelectionnesDate[key]==null){dateDernierTelechargementPeriodeTmp=telechargementCtl.limitDate;selectedRadioFlagShowTmp=false;telechargementCtl.showDateDernierTelechargementPeriode=false}else{dateDernierTelechargementPeriodeTmp=$scope.listeComptesSelectionnesDate[key];selectedRadioFlagShowTmp=true}}else delete $scope.listeComptesSelectionnesDate[key];var nbrCompteSelectionnesAvecDateTelechargement= 0;for(var key in $scope.listeComptesSelectionnesDate)if($scope.listeComptesSelectionnesDate[key]!=null)nbrCompteSelectionnesAvecDateTelechargement++;if(nbrCompteSelectionnesAvecDateTelechargement>1)telechargementCtl.showDateDernierTelechargementPeriode=false;telechargementCtl.dateDernierTelechargementPeriode=dateDernierTelechargementPeriodeTmp;telechargementCtl.selectedRadioFlagShow=selectedRadioFlagShowTmp;telechargementCtl.radioSelectCheckStat(telechargementCtl.selectedRadioFlagShow);var checkBoxAllSelectedStat= telechargementCtl.checkBoxAllSelectedStat();telechargementCtl.selectedCheckBoxAll=checkBoxAllSelectedStat};telechargementCtl.radioSelectCheckStat=function(selectedRadioFlagShowTmp){var radioSelectedTmp1=$("#optradio1");var radioSelectedTmp2=$("#optradio2");var selectedAccountDateStats=[];for(var key in $scope.listeComptesSelectionnes)if($scope.listeComptesSelectionnesDate[key]!=null)selectedAccountDateStats.push(true);else selectedAccountDateStats.push(false);var showRadioStatTmp=false;if(selectedAccountDateStats.indexOf(true)>= 0)showRadioStatTmp=true;if(showRadioStatTmp){telechargementCtl.selectedRadio="1";radioSelectedTmp1.prop("checked",true)}else{telechargementCtl.selectedRadio="2";radioSelectedTmp2.prop("checked",true)}telechargementCtl.selectedRadioFlagShow=showRadioStatTmp;if(telechargementCtl.dateDernierTelechargementPeriode==(new Date).toLocaleDateString("fr-FR")){telechargementCtl.selectedRadio="2";radioSelectedTmp2.prop("checked",true)}};telechargementCtl.showResetButton=function(){return!$scope.disabledButtonCheckboxes|| telechargementCtl.searchText||telechargementCtl.startDate||telechargementCtl.endDate||$scope.formatChange||$scope.periodeChange};telechargementCtl.changeFormat=function(){$scope.formatChange=true};telechargementCtl.changePeriode=function(){$scope.periodeChange=true};function toDate(dateStr){var parts=dateStr.split("/");return new Date(parts[2],parts[1]-1,parts[0])}function isAfter(d1,d2){var dateDebut=toDate(d2);var dateFin=toDate(d1);return dateFin>=dateDebut}telechargementCtl.watchDate=function(date){var modeDate= telechargementCtl.selectedRadio=="2";var datesValides=telechargementCtl.startDate&&telechargementCtl.endDate&&telechargementCtl.startDate!=""&&telechargementCtl.endDate!="";if(modeDate)if(datesValides){$("#dateFromError").remove();$("#dateFrom").closest(".input-field").removeClass("error-field");if(isAfter(telechargementCtl.endDate,telechargementCtl.startDate))$scope.disabledButtonPeriode=false;else $scope.disabledButtonPeriode=true}else if(!(telechargementCtl.startDate&&telechargementCtl.startDate!= "")){$("#dateFromError").remove();$("#dateFrom").closest(".input-field").addClass("error-field");$("\x3cspan id\x3d'dateFromError' class\x3d'input-field-label error'\x3eCe champ est requis\x3c/span\x3e").insertAfter("#dateFrom");$scope.disabledButtonPeriode=true}else{$("#dateFromError").remove();$("#dateFrom").closest(".input-field").removeClass("error-field");$scope.disabledButtonPeriode=false}};$scope.$watch("telechargementCtl.startDate",telechargementCtl.watchDate);$scope.$watch("telechargementCtl.endDate", telechargementCtl.watchDate);$scope.$watch("listeComptesSelectionnes",function(val){if(val){$scope.disabledButtonCheckboxes=true;for(var i in val)if(val.hasOwnProperty(i))if(val[i]==true)$scope.disabledButtonCheckboxes=false}},true);$scope.$watch(function(){return telechargementCtl.selectedRadio},function(val,old){if(val&&val!=old){$scope.disabledButtonPeriode=true;if(val=="1")$scope.disabledButtonPeriode=false;else if(val=="2")if(telechargementCtl.startDate&&telechargementCtl.endDate&&telechargementCtl.startDate!= ""&&telechargementCtl.endDate!="")if(isAfter(telechargementCtl.endDate,telechargementCtl.startDate))$scope.disabledButtonPeriode=false;else $scope.disabledButtonPeriode=true}},true);telechargementCtl.telecharger=function(){var validationButton=document.getElementById("validation-button");validationButton.disabled=true;validationButton.textContent="T\u00e9l\u00e9chargement...";var radioSelected=$("input[name\x3doptradio]:checked","#periodeForm").val();var listeComptes=[];var listeDateComptes={};for(var key in $scope.listeComptesSelectionnes)if($scope.listeComptesSelectionnes[key]=== true){listeComptes.push(key);listeDateComptes[key]=$scope.listeDateComptesSelectionnes[key]}var startDate,endDate;if(radioSelected==1){if(listeComptes.length==1)startDate=telechargementCtl.dateDernierTelechargementPeriode;else startDate=telechargementCtl.limitDate;endDate=telechargementCtl.endDate}else if(radioSelected==2){startDate=telechargementCtl.startDate;endDate=telechargementCtl.endDate;for(var key in $scope.listeComptesSelectionnes)if($scope.listeComptesSelectionnes[key]===true)listeDateComptes[key]= startDate}var telechargementOptions={comptes:listeComptes,format:telechargementCtl.selectedFormat,debut:startDate,fin:endDate,type:"m",dateDebutList:listeDateComptes};var servletUrl=window.location.pathname;var lastPointIndex=window.location.pathname.lastIndexOf(".");servletUrl=servletUrl.substr(0,lastPointIndex);servletUrl=servletUrl+"/jcr:content.getFichier.json";$http({method:"POST",url:servletUrl,data:telechargementOptions,responseType:"blob"}).then(function successCallback(response){if(response.status== 200){var data=response.data;var disposition=response.headers("Content-Disposition");var defaultFileName="";if(disposition){var match=disposition.match(/.*filename="?([^;"]+)"?.*/);if(match[1])defaultFileName=match[1]}defaultFileName=defaultFileName.replace(/[<>:"\/\\|?*]+/g,"_");if(window.navigator.msSaveOrOpenBlob)window.navigator.msSaveBlob(data,defaultFileName);else{var a=window.document.createElement("a");a.href=window.URL.createObjectURL(data);a.download=defaultFileName;document.body.appendChild(a); a.click();document.body.removeChild(a)}validationButton.disabled=false;validationButton.textContent="Valider"}else $("#modalTelMasseKO").modal("show")},function errorCallback(response){if(startDate>endDate&response.status==400)$("#modalTelADate").modal("show");else $("#modalTelMasseKO").modal("show");validationButton.disabled=false;validationButton.textContent="Valider"})}}]); app.filter("currentPage",["$sce",function($sce){return function(listeItems,pagination){pagination.nombrePages=Math.max(1,Math.ceil(listeItems.length/pagination.itemsPerPage));if(pagination.nombrePages==1||pagination.currentPage>pagination.nombrePages)pagination.currentPage=1;var pageId=pagination.currentPage-1;var startIndex=pageId*pagination.itemsPerPage;return listeItems.slice(startIndex,startIndex+pagination.itemsPerPage)}}]); app.filter("searchAccount",function(){return function(items,searchText){var filtered=[];for(var i=0;i