define(['angular'], function (angular) { var HailDamage = angular.module('haildamage', []) HailDamage.controller('HailDamageController', ['$scope', '$http', '$filter', function ($scope, $http, $filter) { $scope.Policies = {}; $scope.ShowClaimForm = false; $scope.Submitted = false; $scope.ShowClaimInfo = false; $scope.ErrorMessage = ''; $scope.TodaysDate = new Date(); $scope.maxDate = new Date( $scope.TodaysDate.getFullYear(), $scope.TodaysDate.getMonth(), $scope.TodaysDate.getDate()); $scope.minDate = new Date( $scope.TodaysDate.getFullYear(), $scope.TodaysDate.getMonth() - 3, $scope.TodaysDate.getDate()); $scope.SubmitIdNumber = function () { $scope.loadingNext = true $http({ method: 'POST', url: '/HailDamageBlock/SubmitIdNumber', data: { IdNumber: $scope.IdNumber } }).then(function (data) { if (data.data != "") { $scope.Policies = data.data.Policies; $scope.FirstName = data.data.FirstName; $scope.ErrorMessage = ''; } else { $scope.ErrorMessage = "No policies were found for the supplied ID number" } $scope.loadingNext = false; }); } $scope.SubmitClaim = function () { $scope.loadingNext = true $scope.ClaimObject = { referenceNumber: $scope.Policy, vehicleSequenceNumber: $scope.VehicleSequenceNumber, ClientName: $scope.FirstName, dateOfIncident: $scope.dateOfIncident, timeHourOfIncident: $scope.timeHourOfIncident, timeMinOfIncident: $scope.timeMinOfIncident, }; $scope.ClaimResponse = {}; $http({ method: 'POST', url: '/HailDamageBlock/SubmitClaim', data: $scope.ClaimObject }).then(function (data) { if (data.data != "") { $scope.ClaimResponse.PolicyNumber = data.data.PolicyNumber $scope.ClaimResponse.ClaimNumber = data.data.ClaimNumber $scope.ShowClaimForm = false; $scope.Submitted = true; $scope.ErrorMessage = ''; } else { $scope.ErrorMessage = "Oh no. The claim was unsuccessful. Please call us on 0861 60 01 24 or try again later." } $scope.loadingNext = false; }); } $scope.$watch("Policy", function (v) { if (v) { $http({ method: 'POST', url: '/HailDamageBlock/GetVehicles', data: { referenceNumber: v } }).then(function (data) { if (data.data != "") { $scope.Vehicles = data.data.Vehicles; if (data.data.PayoutAmount != 'R 0.00') $scope.PayoutAmount = data.data.PayoutAmount; if (data.data.PayoutDate != '0001-01-01') $scope.PayoutDate = data.data.PayoutDate; $scope.ShowClaimInfo = true; $scope.ErrorMessage = ''; } else { $scope.ErrorMessage = "No vehicles were found for the selected policy number" } $scope.loadingNext = false; }); } }); $scope.$watch("IdNumber", function (v) { if (v) { $scope.SubmitIdNumber(); } }); $scope.$watch("VehicleSequenceNumber", function (v) { if (v) { $scope.ShowClaimForm = true; } }); $scope.getclaimExcess = function () { if (!$scope.VehicleSequenceNumber) return ''; var vehicle = $filter('filter')($scope.Vehicles, { VehicleSequenceNumber: $scope.VehicleSequenceNumber }); if (vehicle.length > 0) return vehicle[0].BasicExcess + vehicle[0].AdditionalExcess; } }]); return HailDamage; });