('/Booking/Book/GetCustomPrivacy' + append)\r\n .then(resp => {\r\n\r\n $scope.customPrivacy = !resp.data ? null : {\r\n privacyIt: resp.data.privacyIt,\r\n privacyEn: resp.data.privacyEn,\r\n privacyLinkIt: resp.data.privacyLinkIt,\r\n privacyLinkEn: resp.data.privacyLinkEn,\r\n cookieIt: resp.data.cookieIt,\r\n cookieEn: resp.data.cookieEn,\r\n cookieLinkIt: resp.data.cookieLinkIt,\r\n cookieLinkEn: resp.data.cookieLinkEn\r\n };\r\n\r\n $scope.is_privacy_checked();\r\n });\r\n }\r\n else {\r\n $scope.is_privacy_checked();\r\n }\r\n\r\n $http.get<{ plants: CustomerPlant[]; icon: string; color: string }>('/Booking/Book/GetAllPlants' + append).then(resp => {\r\n if (resp.status == 210 && resp.headers(\"Redirect\") != null) {\r\n console.log(JSON.stringify(resp));\r\n location.href = resp.headers(\"Redirect\");\r\n return;\r\n }\r\n\r\n //console.log(resp);\r\n //console.log(JSON.stringify(resp));\r\n //debugger;\r\n\r\n if (resp.data.color)\r\n /*$('.navbar-primary, #navbar-collapse-2').css('background-color', resp.data.color);*/\r\n $('.navbar-primary').css('background-color', resp.data.color);\r\n if (resp.data.icon) {\r\n $('#logo').attr('src', resp.data.icon);\r\n $('#logo').parent().click(e => e.preventDefault());\r\n $('#hamburger-icon').css('color', checkHeaderColor(resp.data.color));\r\n //Da richiesta di Pasquale non è necessario stampare logo del cliente in ticket\r\n //$scope.linkId = hash.split('-')[1];\r\n //$('#print-logo').attr('src', resp.data.icon).css('width','90px');\r\n }\r\n let minLat: number;\r\n let maxLat: number;\r\n let minLng: number;\r\n let maxLng: number;\r\n resp.data.plants.forEach(cp => {\r\n this.$scope.docks.push({\r\n ...cp,\r\n PlantCode: ''\r\n });\r\n minLat = minLat > cp.Lat || !minLat ? cp.Lat : minLat;\r\n maxLat = maxLat < cp.Lat || !maxLat ? cp.Lat : maxLat;\r\n minLng = minLng > cp.Lng || !minLng ? cp.Lng : minLng;\r\n maxLng = maxLng < cp.Lng || !maxLng ? cp.Lng : maxLng;\r\n $scope.markers_osm.push({\r\n group: 'plants',\r\n lat: cp.Lat,\r\n lng: cp.Lng,\r\n getMessageScope: () => $scope,\r\n message: '' + cp.Description + '
' + cp.Address + '
' + cp.CAP + '
' + cp.City + '
',\r\n icon: {\r\n iconUrl: '../../Content/Icons/hub.png'\r\n }\r\n });\r\n });\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(loc => {\r\n try {\r\n if (localStorage.plantLat != null)\r\n try { this.locateMap(); } catch { }\r\n else if (resp.data.color || resp.data.icon) {\r\n $scope.bounds = leafletBoundsHelpers.createBoundsFromArray([\r\n [maxLat, maxLng],\r\n [minLat, minLng]\r\n ]);\r\n }\r\n else {\r\n try { this.locateMap(loc.coords.latitude, loc.coords.longitude); } catch { }\r\n }\r\n } catch { }\r\n });\r\n } else {\r\n alert('Geolocalization is not supported by your browser');\r\n }\r\n });\r\n //}, error => {\r\n // console.log(JSON.stringify(error.headers(\"Redirect\")));\r\n // location.href = \"https://acmei.loadmanager.cloud\";\r\n //});\r\n\r\n $scope.emailRegex = genericHelper.emailRegex;\r\n $scope.allowPdfDownload = false;\r\n $scope.canSave = false;\r\n $scope.privacyStatement = '';\r\n\r\n $scope.hubSR = genericHelper.createSignalRHub();\r\n\r\n $scope.next = (plant_id: number) => {\r\n let plant = $scope.docks.find(dock => dock.Id == plant_id);\r\n if (plant) {\r\n $scope.hub_id = plant_id;\r\n try {\r\n localStorage.plantLat = plant.Lat;\r\n localStorage.plantLng = plant.Lng;\r\n } catch { }\r\n $scope.plantCode = plant.ExternalCode;\r\n\r\n $('#plantCity').text(plant.City + ': ' + plant.Description);\r\n this.GetD(plant_id).then(() => {\r\n this.findTimeAfterFreeze(plant_id);\r\n $scope.initialDateTime = moment($scope.data.selecteddate).add($scope.data.selectedtime, \"h\");\r\n $http.get('/booking/book/GetMandatoryFields?PlantCode=' + $scope.plantCode + '&CustId=' + $scope.customerCode).then(res => {\r\n $scope.mandatoryFieldsList = res.data;\r\n });\r\n $http.get('/booking/book/GetBookingFieldLabels?PlantCode=' + $scope.plantCode + '&CustId=' + $scope.customerCode).then(res => {\r\n $scope.bookingFieldLabels = res.data;\r\n });\r\n WizardHandler.wizard().next();\r\n });\r\n }\r\n\r\n };\r\n\r\n $scope.searchHub = (item: CustomerPlant, model: string, label: string, event: any) => {\r\n if (item) {\r\n try { this.locateMap(item.Lat, item.Lng); } catch { }\r\n }\r\n };\r\n\r\n $scope.$watch((a: IBookScope) => a.data.selecteddate, (newValue?: string) => { //YYYY/MM/DD\r\n const plant = $scope.docks.find(d => d.Id == $scope.hub_id);\r\n const now = moment.tz(this.TZ);\r\n const parsed = moment.tz(newValue, \"YYYY/MM/DD\", this.TZ);\r\n let selected = newValue ? parsed : now;\r\n if (selected.isSame(now, 'day'))\r\n selected = now.clone().startOf('day');\r\n\r\n if ($scope.minValidDate && $scope.minValidDate.isSame(parsed, 'date'))\r\n this.findTimeAfterFreeze(plant.Id)\r\n else {\r\n if (plant && !$scope.selectedWD)\r\n $http.get(`/Book/GetWorkingTime?plantId=${plant.Id}&date=${selected.toISOString()}`).then(res => {\r\n if (moment.tz(res.data.openingHour, this.TZ) > now.clone().add(this.$scope.freezeBooking, 'h')) {\r\n this.$scope.selectedWD.Opening = (moment.tz(res.data.openingHour, this.TZ)).tz(this.TZ).clone();\r\n this.$scope.selectedWD.Closing = moment.tz(res.data.closingHour, this.TZ);\r\n this.$scope.data.selectedtime = (moment.tz(res.data.openingHour, this.TZ)).tz(this.TZ).clone().hours();\r\n }\r\n else {\r\n this.$scope.selectedWD.Opening = now.clone().add(this.$scope.freezeBooking, 'h');\r\n this.$scope.selectedWD.Closing = moment.tz(res.data.closingHour, this.TZ);\r\n this.$scope.data.selectedtime = now.clone().add(this.$scope.freezeBooking, 'h').hours();\r\n }\r\n\r\n $scope.$evalAsync();\r\n $scope.docksLimit = res.data.maxDocks;\r\n });\r\n else if (newValue)\r\n\r\n $http.get(`/Book/GetWorkingTime?plantId=${plant.Id}&date=${selected.toISOString()}`).then(res => {\r\n\r\n if (moment.tz(res.data.openingHour, this.TZ) > now.clone().add(this.$scope.freezeBooking, 'h')) {\r\n this.$scope.selectedWD.Opening = (moment.tz(res.data.openingHour, this.TZ)).tz(this.TZ).clone();\r\n this.$scope.selectedWD.Closing = moment.tz(res.data.closingHour, this.TZ);\r\n this.$scope.data.selectedtime = (moment.tz(res.data.openingHour, this.TZ)).tz(this.TZ).clone().hours();\r\n }\r\n else {\r\n this.$scope.selectedWD.Opening = now.clone().add(this.$scope.freezeBooking, 'h');\r\n this.$scope.selectedWD.Closing = moment.tz(res.data.closingHour, this.TZ);\r\n this.$scope.data.selectedtime = now.clone().add(this.$scope.freezeBooking, 'h').hours();\r\n }\r\n $scope.$evalAsync();\r\n $scope.docksLimit = res.data.maxDocks;\r\n });\r\n }\r\n });\r\n }\r\n /**\r\n * Function to center map\r\n * @param lat\r\n * @param lng\r\n * @param accurancy\r\n */\r\n private locateMap(lat: number = parseFloat(localStorage.plantLat), lng: number = parseFloat(localStorage.plantLng), accurancy: number = this.accurancy) {\r\n this.$scope.bounds = this.leafletBoundsHelpers.createBoundsFromArray([\r\n [lat + accurancy, lng + accurancy],\r\n [lat - accurancy, lng - accurancy]\r\n ]);\r\n }\r\n\r\n private handleTileError($event: any) {\r\n if ($event.tile._hasError) return;\r\n\r\n var url = \"http://tile.osm.org/{z}/{x}/{y}.png\"\r\n var tileSrc = url.replace(/{x}/g, $event.coords.x);\r\n tileSrc = tileSrc.replace(/{y}/g, $event.coords.y);\r\n tileSrc = tileSrc.replace(/{z}/g, $event.coords.z);\r\n $event.tile._hasError = true;\r\n $event.tile.src = tileSrc;\r\n }\r\n }\r\n\r\n globalApp.requires.push('mgo-angular-wizard',\r\n 'ui.select',\r\n 'vcRecaptcha',\r\n 'ui.bootstrap',\r\n 'angularFileUpload',\r\n 'leaflet-directive',\r\n 'ngfallbackSrc');\r\n\r\n globalApp.config([\"$logProvider\",\r\n function ($logProvider: any) {\r\n $logProvider.debugEnabled(false);\r\n }]);\r\n\r\n globalApp\r\n .config(['uiSelectConfig', (uiSelectConfig: any) => uiSelectConfig.theme = 'bootstrap'])\r\n .controller('BookPrenotationCtrl', [\r\n '$scope',\r\n '$http',\r\n 'WizardHandler',\r\n '$uibModal',\r\n 'FileUploader',\r\n '$location',\r\n 'genericHelper',\r\n '$q',\r\n 'leafletBoundsHelpers',\r\n BookPrenotationController\r\n ]);\r\n}\r\n"]}