Initial commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
(function () {
|
||||
global.dashModule
|
||||
.controller('setCustomersDiscountCtrl', ['$scope', '$http', '$', '$translate', 'utilsService', setCustomersDiscountController])
|
||||
.directive('setCustomersDiscount', [setCustomersDiscountDirective]);
|
||||
|
||||
function setCustomersDiscountDirective() {
|
||||
return {
|
||||
restrict: 'E',
|
||||
templateUrl: 'financing/html/setCustomersDiscountTemplate'
|
||||
};
|
||||
}
|
||||
|
||||
function setCustomersDiscountController($scope, $http, $, $translate, utilsService) {
|
||||
$scope.getCustomersAndDiscount = getCustomersAndDiscount;
|
||||
$scope.saveCustomersDiscount = saveCustomersDiscount;
|
||||
$scope.getNewInterestRate = getNewInterestRate;
|
||||
$scope.customers = {};
|
||||
$scope.discounts = {};
|
||||
$scope.interestRate = 0;
|
||||
$scope.showMessage = false;
|
||||
$scope.getMaxInterestRateValue = getMaxInterestRateValue;
|
||||
$scope.searchText = '';
|
||||
|
||||
function getCustomersAndDiscount() {
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'financing/api/getCustomersAndDiscount'
|
||||
}).then(setCustomersAndDiscount, utilsService.onHttpError);
|
||||
}
|
||||
|
||||
function setCustomersAndDiscount(response) {
|
||||
$scope.customers = response.data.customers ? response.data.customers : {};
|
||||
$scope.interestRate = response.data.interestRate ? response.data.interestRate : 0;
|
||||
|
||||
$scope.customers.forEach(detail => {
|
||||
$scope.discounts[detail.idCustomer] = parseFloat(detail.discount);
|
||||
});
|
||||
}
|
||||
|
||||
function getNewInterestRate(idCustomer) {
|
||||
const newDiscount = $scope.discounts[idCustomer] || 0;
|
||||
const newInterestRate = $scope.interestRate - newDiscount;
|
||||
$scope.showMessage = newInterestRate <= 0 ||
|
||||
newInterestRate > $scope.interestRate ||
|
||||
$scope.discounts[idCustomer] === undefined ?
|
||||
true : false;
|
||||
|
||||
return newInterestRate.toFixed(2);
|
||||
}
|
||||
|
||||
function saveCustomersDiscount() {
|
||||
const modifiedDiscounts = getOnlyModifiedDiscounts();
|
||||
const params = $.param({
|
||||
discounts: modifiedDiscounts
|
||||
});
|
||||
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'financing/api/saveCustomersDiscount',
|
||||
data: params
|
||||
}).then(showUpdateDefaultMessage, utilsService.onHttpError);
|
||||
}
|
||||
|
||||
function getOnlyModifiedDiscounts() {
|
||||
const filteredCustomers = $scope.customers.filter(info => {
|
||||
$scope.discounts[info.idCustomer] = $scope.discounts[info.idCustomer] || 0;
|
||||
|
||||
return parseFloat(info.discount) !== $scope.discounts[info.idCustomer];
|
||||
});
|
||||
|
||||
filteredCustomers.map(info => {
|
||||
info.discount = $scope.discounts[info.idCustomer].toFixed(2);
|
||||
});
|
||||
|
||||
return filteredCustomers;
|
||||
}
|
||||
|
||||
function showUpdateDefaultMessage(response) {
|
||||
if (typeof response.data.messages !== 'undefined') {
|
||||
response.data.messages.forEach((messageObj) => {
|
||||
const key = messageObj.key || '';
|
||||
let translatedMessage = $translate.instant('financing.messages.' + messageObj.message);
|
||||
translatedMessage = key !== '' ? translatedMessage + ': ' + key : translatedMessage;
|
||||
utilsService.displayMessage(messageObj.code, translatedMessage);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function getMaxInterestRateValue() {
|
||||
return ($scope.interestRate - 0.01).toFixed(2);
|
||||
}
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user