1app 2 .controller('DashboardController', ['$scope', 'relatiesService', 'provisionAcceptanceService', 'moduleService', 'overeenkomstService', '$timeout', 'betalingService', 3 function ($scope, relatiesService, provisionAcceptanceService, moduleService, overeenkomstService, $timeout, betalingService) { 4 5 const params = new Proxy(new URLSearchParams(window.location.search), { 6 get: (searchParams, prop) => searchParams.get(prop), 7 }); 8 let id = params.hostedCheckoutId; 9 10 if (id) { 11 betalingService.getBetalingStatus(id).then(function (result) { 12 $scope.betalingstatus = result; 13 }); 14 } 15 16 var selected = JSON.parse(sessionStorage.getItem('selectedOvereenkomst')); 17 $scope.tileFilter = { 18 name: '' 19 }; 20 21 // Filter for standard dashboard tiles 22 if (document.getElementById('dashboardTiles')) { 23 $scope.dashboardTiles = JSON.parse(document.getElementById('dashboardTiles').value); 24 } 25 26 // Filter for dynamically added dashboard tiles 27 if (document.querySelectorAll('.webTegel') && document.querySelectorAll('.dashboard-filter input')) { 28 var tiles = document.querySelectorAll('.webTegel'), 29 parent = document.querySelector('.dynamic-dashboard'), 30 allChildren = document.querySelectorAll('.umb-grid .column > div > div:not(.dashboard-filter-wrapper)'); 31 32 $scope.webTiles = []; 33 for (i = 0; i < tiles.length; i++) { 34 $scope.webTiles.push({ 35 name: tiles[i].firstElementChild.innerText, 36 url: tiles[i].firstElementChild.getAttribute('href'), 37 icon: tiles[i].querySelector('.tile-icon').getAttribute('class').split('tile-icon ').pop() 38 }) 39 } 40 41 function addFilterBackdrop(event) { 42 if ($scope.tileFilter.name && event.key !== 'Escape') { 43 parent.classList.add('filter-backdrop'); 44 document.addEventListener('click', function () { 45 $timeout(closeFilter); 46 }); 47 for (i = 0; i < allChildren.length; i++) { 48 allChildren[i].classList.add('no-interaction'); 49 } 50 document.querySelector('.dashboard-container .column:first-child').classList.add('border-0'); 51 } else { 52 $timeout(closeFilter); 53 } 54 } 55 56 function closeFilter(event) { 57 parent.classList.remove('filter-backdrop'); 58 for (i = 0; i < allChildren.length; i++) { 59 allChildren[i].classList.remove('no-interaction') 60 } 61 document.querySelector('.dashboard-container .column:first-child').classList.remove('border-0'); 62 $scope.tileFilter.name = ''; 63 document.removeEventListener('click', closeFilter); 64 } 65 66 //attach event for two different dashboards 67 document.getElementById('dashboard-filter') ? document.getElementById('dashboard-filter').addEventListener('keyup', addFilterBackdrop) : false; 68 } 69 70 $scope.hasModule = function (name) { 71 return moduleService.hasModule(name); 72 }; 73 74 $scope.hasModuleTenancyAgreementHuurdersPortaal = $scope.hasModule('TenancyAgreementHuurdersPortaal'); 75 $scope.hasModuleIngenico = $scope.hasModule('Ingenico'); 76 77 relatiesService.getRelatie().then(function (result) { 78 $scope.relatie = result; 79 80 if ($scope.hasModuleTenancyAgreementHuurdersPortaal) { 81 relatiesService.getProvisionAcceptancesByTenantId($scope.relatie.id) 82 .then(function (listOfProvisionAcceptance) { 83 $scope.provisionalAcceptances = provisionAcceptanceService.filterValidProvisionAcceptance(listOfProvisionAcceptance); 84 $scope.provisionExists = $scope.provisionalAcceptances.length; 85 if ($scope.provisionExists) { 86 if ($scope.provisionExists === 1) { 87 $scope.unitId = provisionAcceptanceService.extractProvisionAcceptanceUnitNummerFromList($scope.provisionalAcceptances); 88 } else { 89 $scope.listOfProvisionAcceptance = createListOfAdresesFromProvisionAcceptanceList($scope.provisionalAcceptances); 90 $scope.selectedProvisionAcceptance = {}; 91 } 92 } 93 }).catch(function (error) { 94 $scope.loading = false; 95 $scope.errorMessage = "Er is iets misgegaan bij het ophalen van uw gegevens"; 96 console.error(error) 97 });
98 } 99 100 if ($scope.hasModuleIngenico) { 101 relatiesService.getOvereenkomsten() 102 .then(function (data) { 103 $scope.overeenkomsten = data; 104 105 if ($scope.overeenkomsten?.length) { 106 if ($scope.overeenkomsten.length === 1) { 107 $scope.hide = true; 108 $scope.selectedOvereenkomst = $scope.overeenkomsten[0]; 109 } else if (!selected) { 110 $scope.selectedOvereenkomst = $scope.overeenkomsten[0]; 111 } else if (selected && $scope.overeenkomsten.length > 1) { 112 $scope.selectedOvereenkomst = selected; 113 } 114 $scope.getBoekingen($scope.selectedOvereenkomst.id); 115 } else { 116 $scope.loading = false; 117 $scope.errorMessage = "Er zijn geen contracten gevonden."; 118 } 119 }, err => { 120 $scope.loading = false; 121 $scope.errorMessage = "Er is iets misgegaan bij het ophalen van uw gegevens."; 122 console.error(error) 123 }).catch(function (error) { 124 $scope.loading = false; 125 $scope.errorMessage = "Er is iets misgegaan bij het ophalen van uw gegevens."; 126 console.error(error) 127 }); 128 129 $scope.getBoekingen = function (id) { 130 overeenkomstService.getOverige(id) 131 .then(function (result) { 132 $scope.overigeVorderingen = []; 133 134 // filter result array elements from araay that we do not want to show 135 if (result.length) { 136 for (var i = 0; i < result.length; i++) { 137 var boeking = result[i]; 138 $scope.overigeVorderingen.push(boeking); 139 } 140 } 141 142 $scope.totaalOverigeVorderingen = 0; 143 $scope.overigeBoekingenTeBetalenCount = 0; 144 $scope.overigeBoekingenBetaaldCount = 0; 145 if ($scope.overigeVorderingen.length) { 146 for (var i = 0; i < $scope.overigeVorderingen.length; i++) { 147 var boekingOverigeVorderingen = $scope.overigeVorderingen[i]; 148 149 if (boekingOverigeVorderingen.status === "InBehandeling") { 150 $scope.totaalInBehandeling = $scope.totaalInBehandeling + (boekingOverigeVorderingen.saldo || 0); 151 } else { 152 $scope.totaal = ($scope.totaal * 100 + (boekingOverigeVorderingen.saldo || 0) * 100) / 100; 153 $scope.totaalOverigeVorderingen = ($scope.totaalOverigeVorderingen * 100 + (boekingOverigeVorderingen.saldo || 0) * 100) / 100; 154 } 155 156 $scope.overigeVorderingen[i].openstaand = (boekingOverigeVorderingen.saldo || 0) > 0; 157 if ($scope.overigeVorderingen[i].openstaand) { 158 ++$scope.overigeBoekingenTeBetalenCount; 159 } 160 else { 161 ++$scope.overigeBoekingenBetaaldCount; 162 } 163 } 164 } 165 166 overeenkomstService.getBoekingen(id).then(function (result) { 167 $scope.boekingen = []; 168 $scope.showButton = true; 169 170 // filter result array elements from araay that we do not want to show 171 if (result.length) { 172 for (var i = 0; i < result.length; i++) { 173 var boeking = result[i]; 174 $scope.boekingen.push(boeking); 175 } 176 } 177 178 if (!$scope.boekingen.length && !$scope.overigeVorderingen.length) { 179 $scope.showButton = false; 180 $scope.betalingsregeling = false; 181 $scope.errorMessage = "Er zijn geen facturen en betalingen gevonden bij het gekozen contract"; 182 } 183 184 $scope.totaal = 0; 185 $scope.totaalInBehandeling = 0; 186 $scope.boekingenTeBetalenCount = 0; 187 $scope.boekingenBetaaldCount = 0; 188 if ($scope.boekingen.length) { 189 for (var i = 0; i < $scope.boekingen.length; i++) { 190 var boeking = $scope.boekingen[i]; 191 192 if (boeking.status === "InBehandeling") { 193 $scope.totaalInBehandeling = $scope.totaalInBehandeling + (boeking.saldo || 0); 194 } else { 195 $scope.totaal = ($scope.totaal * 100 + (boeking.saldo || 0) * 100) / 100; 196 } 197 198 $scope.boekingen[i].openstaand = boeking.saldo > 0; 199 if ($scope.boekingen[i].openstaand) { 200 ++$scope.boekingenTeBetalenCount; 201 } 202 else { 203 ++$scope.boekingenBetaaldCount; 204 } 205 } 206 } 207 }).catch(function (error) { 208 $scope.loading = false; 209 $scope.errorMessage = "Er is iets misgegaan bij het ophalen van uw gegevens"; 210 console.error(error) 211 });
212 }); 213 }; 214 } 215 return relatiesService.hasCurrentTenancyAgreement(); 216 }).then(function (result) { 217 $scope.showCreateContract = result; 218 }).catch(function (error) { 219 $scope.loading = false; 220 $scope.errorMessage = "Er is iets misgegaan bij het ophalen van uw gegevens"; 221 console.error(error) 222 }); 223 }]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.