146 lines
4.9 KiB
JavaScript
146 lines
4.9 KiB
JavaScript
(function () {
|
|
global.dashModule
|
|
.controller('addBidCtrl', ['$scope', '$http', '$', '$translate', 'utilsService', addBidController])
|
|
.directive('addBid', [addBidDirective]);
|
|
|
|
function addBidDirective() {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'bids/html/addBidTemplate'
|
|
};
|
|
}
|
|
|
|
function addBidController($scope, $http, $, $translate, utilsService) {
|
|
$scope.initAddBid = initAddBid;
|
|
$scope.bid = {};
|
|
$scope.onCLSelect = onCLSelect;
|
|
$scope.onCustomerSelect = onCustomerSelect;
|
|
$scope.onPackageSelect = onPackageSelect;
|
|
$scope.onPayTypeSelect = onPayTypeSelect;
|
|
$scope.isAddSupBidDialogVisible = false;
|
|
$scope.isLinkSupBidDialogVisible = false;
|
|
$scope.showSupBidDialog = showSupBidDialog;
|
|
$scope.showLinkBidDialog = showLinkBidDialog;
|
|
$scope.linkSuppliers = linkSuppliers;
|
|
$scope.saveBid = saveBid;
|
|
$scope.supplierBids = [];
|
|
|
|
function initAddBid() {
|
|
getClCustomers();
|
|
}
|
|
|
|
function getClCustomers() {
|
|
$http({
|
|
method: 'GET',
|
|
url: 'bids/api/getClCustomers'
|
|
}).then(setClCustomers, utilsService.onHttpError);
|
|
}
|
|
|
|
function setClCustomers(response) {
|
|
if (response.data) {
|
|
$scope.clCustomers = response.data;
|
|
}
|
|
}
|
|
|
|
function getPackages(idCommercialLead, idCustomer) {
|
|
$http({
|
|
method: 'POST',
|
|
url: 'bids/api/getPackages',
|
|
data: $.param({
|
|
idCommercialLead,
|
|
idCustomer
|
|
})
|
|
}).then(setPackages, utilsService.onHttpError);
|
|
}
|
|
|
|
function setPackages(response) {
|
|
if (response.data) {
|
|
$scope.packages = response.data;
|
|
}
|
|
}
|
|
|
|
function getPaymentTypes(idCommercialLead, idCustomer, idPackage) {
|
|
$http({
|
|
method: 'POST',
|
|
url: 'bids/api/getPayTypes',
|
|
data: $.param({
|
|
idCommercialLead,
|
|
idCustomer,
|
|
idPackage
|
|
})
|
|
}).then(setPayTypes, utilsService.onHttpError);
|
|
}
|
|
|
|
function setPayTypes(response) {
|
|
if (response.data) {
|
|
$scope.payTypes = response.data;
|
|
}
|
|
}
|
|
|
|
function onCLSelect(){
|
|
$scope.selectedCustomer = null;
|
|
}
|
|
|
|
function onCustomerSelect() {
|
|
$scope.selectedPackage = null;
|
|
$scope.bid.idCustomerInstance = $scope.selectedCustomer ? $scope.selectedCustomer.idCustomerInstance : 0;
|
|
|
|
if ($scope.selectedCl.idCommercialLead && $scope.selectedCustomer.idCustomer) {
|
|
getPackages($scope.selectedCl.idCommercialLead, $scope.selectedCustomer.idCustomer);
|
|
}
|
|
}
|
|
|
|
function onPackageSelect() {
|
|
$scope.selectedPayType = null;
|
|
$scope.bid.idPackage = $scope.selectedPackage ? $scope.selectedPackage.idPackage : 0;
|
|
if($scope.selectedCl.idCommercialLead && $scope.selectedCustomer.idCustomer && $scope.selectedPackage){
|
|
getPaymentTypes($scope.selectedCl.idCommercialLead, $scope.selectedCustomer.idCustomer, $scope.selectedPackage.idPackage);
|
|
}
|
|
}
|
|
|
|
function onPayTypeSelect() {
|
|
$scope.bid.idPaymentType = $scope.selectedPayType ? $scope.selectedPayType.idPaymentType : 0;
|
|
}
|
|
|
|
function showSupBidDialog() {
|
|
$scope.$evalAsync(() => {
|
|
$scope.isAddSupBidDialogVisible = !$scope.isAddSupBidDialogVisible;
|
|
});
|
|
}
|
|
|
|
function showLinkBidDialog() {
|
|
$scope.$evalAsync(() => {
|
|
$scope.isLinkSupBidDialogVisible = !$scope.isLinkSupBidDialogVisible;
|
|
});
|
|
}
|
|
|
|
function linkSuppliers(params){
|
|
$scope.bid.supplierBids = params.selectedBids;
|
|
}
|
|
|
|
function saveBid(){
|
|
$http({
|
|
method: 'POST',
|
|
url: 'bids/api/addBid',
|
|
data: $.param({
|
|
bid: JSON.stringify($scope.bid)
|
|
})
|
|
}).then(displayMessage, utilsService.onHttpError);
|
|
}
|
|
|
|
function displayMessage(response){
|
|
if (typeof response.data.messages !== 'undefined') {
|
|
response.data.messages.forEach((messageObj) => {
|
|
const translatedMessage = $translate.instant('bids.messages.' + messageObj.message);
|
|
utilsService.displayMessage(messageObj.code, translatedMessage);
|
|
if(messageObj.code === 'success'){
|
|
$scope.$evalAsync(() => {
|
|
$scope.bid = {};
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
})();
|