define(['quote/quote'], function (quote) {
quote.controller('Trailer', ['$scope', '$http', 'Helpers', 'VehicleHelpers', function ($scope, $http, Helpers, VehicleHelpers) {
$scope.SetStepHeader('
Trailer information
');
$scope.Trailers = $scope.Quote.Vehicles;
$scope.isUpdate = false;
$scope.index = $scope.Trailers.length;
$scope.isEdit = $scope.Quote.AmendmentMode == "Edit" ? true : false;
$scope.disableRegistration = false;
//vehicleobject actions
//when the currently selected Vehicle changes
$scope.changeIndex = function (vehicle) {
var index = VehicleHelpers.getVehicleIndex(vehicle);
$scope.index = index;
$scope.listIndex = VehicleHelpers.getLastVehicleIndexByType($scope.Trailers[$scope.index], 'IsTrailer');
$scope.Trailers[index].HasSeen = true;
};
//when a Vehicle is removed
$scope.removeItem = function (vehicle) {
var index = VehicleHelpers.getVehicleIndex(vehicle);
VehicleHelpers.removeVehicle($scope, index, 'IsTrailer');
};
//when a Vehicle is added
$scope.addItem = function addItem() {
VehicleHelpers.addVehicle($scope, { IsTrailer: true, VehicleTypeInternal: "TR", Sasria: "Y", HailCover: "Y", isAdd: true }, 'IsTrailer');
window.scrollTo(0, 0);
};
VehicleHelpers.setupState($scope, 'IsTrailer');
$scope.loadTrailerMinMax = function () {
var Trailer = {};
Trailer.vehicleKey = $scope.Trailers[$scope.index].VehicleDescription.Id;
Trailer.ReferenceNumber = $scope.Quote.ReferenceNumber;
$http({
method: 'POST',
url: "/quote/Trailer/GetVehicleMinMaxWithVehicleKey",
data: Trailer
}).success(function (data, status, headers, config) {
$scope.TrailerMaximum = data.Maximum;
$scope.TrailerMinimum = data.Minimum;
}).error(function (data, status, headers, config) { });
}
function getSelectedText(elementId) {
var elt = document.getElementById(elementId);
if (elt.selectedIndex == -1)
return null;
return elt.options[elt.selectedIndex].text;
}
function setVehicleDescription() {
if ($scope.Trailers[$scope.index].VehicleDescription && $scope.Trailers[$scope.index].VehicleDescription.Id && $scope.Trailers[$scope.index].VehicleDescription.Year && $scope.Trailers[$scope.index].isAdd) $scope.Trailers[$scope.index].VehicleDescription.Description = getSelectedText('YearList') + " " + getSelectedText('MakeList') + ' Trailer';
}
$scope.$watch("Trailers[index].VehicleDescription.Id", function (value) {
if (value) { $scope.loadTrailerMinMax(); }
else {
$scope.TrailerMaximum = "";
$scope.TrailerMinimum = "";
$scope.Trailers[$scope.index].InsuredValue = "";
$scope.Trailers.length;
}
});
$scope.$watch("Trailers[index].VehicleFinanced", function (value) {
if (value == "Y" && $scope.Quote.AmendmentMode == 'Add') {
$scope.Trailers[$scope.index].Sasria = "Y";
$scope.Trailers[$scope.index].HailCover = "Y";
}
});
$scope.$watch("Trailers[index].VehicleDescription.Year", setVehicleDescription);
$scope.$watch("Trailers[index].VehicleDescription.Id", setVehicleDescription);
}]);
});