define(['quote/quote'], function (quote) { quote.controller('Home', ['$scope', '$http', 'Helpers', function ($scope, $http, Helpers) { $scope.SetStepHeader('Home Contents information'); $scope.Home = $scope.Quote.HomeContent || ($scope.Quote.HomeContent = {}); $scope.Building = $scope.Quote.Building || ($scope.Quote.Building = {}); //Set when page loads inorder to have correct styling, both will update with ajax calls $scope.BoreholeMaximum = 14000; $scope.BoreholeMinimum = 2000; $scope.HomeContentsMaximum = 6710000; $scope.HomeContentsMinimum = 50000; $scope.additionalLiabilityValues = []; $scope.showLiability = false; $scope.loadAdditionalLiabilityValues = function () { $http({ method: 'POST', url: '/Quote/Home/GetBuildingAdditionalLiability', data: { currentState: $scope.Quote } }).success(function (data) { $scope.additionalLiabilityValues = data.dropdownOptions; $scope.showLiability = data.showLiability; if (!$scope.Home.AdditionalPassengerLiability) { $scope.Home.AdditionalPassengerLiability = data.defaultValue; } }); } $scope.loadAdditionalLiabilityValues(); //move in date $scope.FullYearList = []; var today = new Date(); var age = Helpers.getIdNumberAge($scope.Quote.Personal.IdNumber); for (var index = today.getFullYear() ; index >= today.getFullYear() - age; index--) $scope.FullYearList.push(index); //load ResType and Rooftype if building exist if ($scope.Building.ResType) $scope.Home.ResType = $scope.Building.ResType; if ($scope.Building.RoofType) $scope.Home.RoofType = $scope.Building.RoofType; $scope.BuildingExist = ($scope.Quote.Building.TrueAndCorrect && $scope.Quote.Building.BuildingValue && $scope.Quote.Building.BuildingValue > 0); $scope.setV = function (ctrl, value) { if (ctrl) { ctrl.$setValidity('myValidator', value); } } $scope.checkonlyone = function (selected) { if (selected == "ElectFenceLinkedMannCtl") { $scope.Home.ElectFenceLinkedArmdRct = false; $scope.Home.ElectricFenceWorkingOrder = false; } if (selected == "ElectFenceLinkedArmdRct") { $scope.Home.ElectFenceLinkedMannCtl = false; $scope.Home.ElectricFenceWorkingOrder = false; } if (selected == "ElectricFenceWorkingOrder") { $scope.Home.ElectFenceLinkedMannCtl = false; $scope.Home.ElectFenceLinkedArmdRct = false; } if (selected == "BBarsopenningWindows") { $scope.Home.PatrollingSecurity = false; } if (selected == "PatrollingSecurity") { } } $scope.borderSelectionDisabled = false; $scope.borderNoneDisabled = false; $scope.BordersRequired = true; $scope.changeBoarder = function () { $scope.Home.NeigborsBorder = 0; $scope.Home.NeigborsBorderList = []; $scope.setV($scope.HomeForm.ckallVL, true); $scope.setV($scope.HomeForm.ckallGC, true); $scope.setV($scope.HomeForm.ckallP, true); $scope.setV($scope.HomeForm.ckallSR, true); $scope.setV($scope.HomeForm.ckallSF, true); $scope.setV($scope.HomeForm.ckallIS, true); if ($scope.Selection2 == true) { $scope.Home.NeigborsBorder++; $scope.Home.NeigborsBorderList.push("VL"); $scope.borderNoneDisabled = true; } if ($scope.Selection3 == true) { $scope.Home.NeigborsBorder++; $scope.Home.NeigborsBorderList.push("GC"); $scope.borderNoneDisabled = true; } if ($scope.Selection4 == true) { $scope.Home.NeigborsBorder++; $scope.Home.NeigborsBorderList.push("PK"); $scope.borderNoneDisabled = true; } if ($scope.Selection5 == true) { $scope.Home.NeigborsBorder++; $scope.Home.NeigborsBorderList.push("SR"); $scope.borderNoneDisabled = true; } if ($scope.Selection6 == true) { $scope.Home.NeigborsBorder++; $scope.Home.NeigborsBorderList.push("SH"); $scope.borderNoneDisabled = true; } if ($scope.Selection7 == true) { $scope.Home.NeigborsBorder++; $scope.Home.NeigborsBorderList.push("SQ"); $scope.borderNoneDisabled = true; } if ($scope.Home.NeigborsBorderList.length == 0) $scope.borderNoneDisabled = false; if ($scope.Selection8 == true) { $scope.borderSelectionDisabled = true; } if (typeof $scope.Selection8 == "undefined" || $scope.Selection8 == false) { $scope.borderSelectionDisabled = false; } if ($scope.Home.NeigborsBorderList.length == 0 && (typeof $scope.Selection8 == "undefined" || $scope.Selection8 == false)) { $scope.BordersRequired = true; } else { $scope.BordersRequired = false; } } $scope.require = true; $scope.required = function () { if ($scope.borderNoneDisabled == false) return $scope.require; } $scope.required1 = function () { if ($scope.borderSelectionDisabled == true) return $scope.require = false; else if ($scope.borderNoneDisabled == false) return $scope.require = true; } $scope.$watch("Home.NoClaims", function (v) { if (v) { $scope.Home.LastClaimMonth = null; $scope.Home.LastClaimYear = null; } }); $scope.$watch("Home.NoLosses", function (v) { if (v) { $scope.Home.LastLossMonth = null; $scope.Home.LastLossYear = null; } }); $scope.SubmitHome = function () { $scope.Quote.HomeContent = $scope.Home; $scope.Quote.Building.StructureType = $scope.Building.StructureType; $scope.HomeSubmit(); } $scope.loadHomeContentsMinMax = function () { if ($scope.Building.StructureType && $scope.Home.RoofType && $scope.Quote.Personal.AreaType) { $http({ method: 'POST', url: '/Quote/Home/GetHomeContentsMinMax', data: { referenceNumber: $scope.Quote.ReferenceNumber, areaType: $scope.Quote.Personal.AreaType, roofType: $scope.Home.RoofType, structureType: $scope.Building.StructureType } }).success(function (data) { $scope.HomeContentsMaximum = data.Maximum; $scope.HomeContentsMinimum = data.Minimum; }); } } $scope.loadBoreholeMinMax = function () { $http({ method: 'POST', url: '/Quote/Home/getBoreholeMinMax', data: { ReferenceNumber: $scope.Quote.ReferenceNumber } }).success(function (data, status, headers, config) { $scope.BoreholeMaximum = data.ItemMaximum; $scope.BoreholeMinimum = data.ItemMinimum; }).error(function (data, status, headers, config) { }); } $scope.loadBoreholeMinMax(); function verifyMoveInDate() { if ($scope.HomeForm == null || $scope.HomeForm.homeOccupancy == null || $scope.HomeForm.homeOccupancy.HomeMovedInYear == null) return; var y = $scope.Home.HomeMovedInYear; var m = $scope.Home.HomeMovedInMonth; if (y && m) { var now = new Date(); var cy = now.getFullYear(); var cm = now.getMonth() + 1; var valid = cy != y || cm + 1 >= m; $scope.HomeForm.homeOccupancy.HomeMovedInYear.$setValidity('moveInDate', valid); $scope.HomeForm.homeOccupancy.HomeMovedInMonth.$setValidity('moveInDate', valid); } else { $scope.HomeForm.homeOccupancy.HomeMovedInYear.$setValidity('moveInDate', true); $scope.HomeForm.homeOccupancy.HomeMovedInMonth.$setValidity('moveInDate', true); } } if ($scope.Home.HomeContentsValue == 0) $scope.Home.HomeContentsValue = ""; $scope.$watch("Home.HomeMovedInMonth", verifyMoveInDate); $scope.$watch("Home.HomeMovedInYear", verifyMoveInDate); }]); });