Files
old-wiaas-legacy/api-wiaas/client/js/components/orders/extra-actions/procurement.directive.js
2018-06-11 11:09:35 +02:00

97 lines
3.4 KiB
JavaScript

(function () {
global.dashModule
.controller('procurementCtrl', ['$scope', '$', '$http', '$translate', 'Upload', 'utilsService', 'ordersUtilsService', procurementCtrl])
.directive('procurement', [procurementDirective]);
function procurementDirective() {
return {
restrict: 'E',
templateUrl: 'orders/html/procurementTemplate'
};
}
function procurementCtrl($scope, $, $http, $translate, Upload, utilsService, ordersUtilsService) {
const step = $scope.$parent.step;
const idOrder = step.idOrder;
$scope.getSuppliersByPackageOrder = getSuppliersByPackageOrder;
$scope.uploadFile = uploadFile;
$scope.removeOrderDocument = removeOrderDocument;
$scope.isDialogVisible = {};
$scope.showHideDialog = showHideDialog;
$scope.selectPackage = selectPackage;
$scope.selectedPackage = {};
function selectPackage(packageObj, idSupplier){
$scope.selectedPackage[idSupplier] = packageObj;
}
function getSuppliersByPackageOrder() {
const params = $.param({
idOrder,
documentType: 'configuration'
});
$http({
method: 'POST',
data: params,
url: 'orders/api/getSuppliersByPackageOrder'
}).then(setProductEstimations, utilsService.onHttpError);
}
function setProductEstimations(response) {
if (response.data) {
$scope.suppliersData = response.data;
$.each($scope.suppliersData, (name, details) => {
details.documents.forEach(docDetails => {
$scope.isDialogVisible[docDetails.idDocument] = false;
});
});
}
}
function uploadFile(file, idSupplier) {
Upload.upload({
url: 'orders/api/uploadConfigurationDocument',
method: 'POST',
file: file,
data: {
idPackage : $scope.selectedPackage[idSupplier] && $scope.selectedPackage[idSupplier].idPackage || 0,
idOrder,
idSupplier
}
}).then(displayMessage, utilsService.onHttpError);
}
function displayMessage(response) {
if (typeof response.data.messages !== 'undefined') {
response.data.messages.forEach((messageObj) => {
const translatedMessage = $translate.instant('orders.messages.' + messageObj.message);
utilsService.displayMessage(messageObj.code, translatedMessage);
getSuppliersByPackageOrder();
ordersUtilsService.getOrderInfo();
});
}
}
function removeOrderDocument(document) {
const params = $.param({
idOrder,
idPackage: document.idPackage,
idDocument: document.idDocument
});
$http({
method: 'POST',
data: params,
url: 'orders/api/removeOrderDocument'
}).then(displayMessage, utilsService.onHttpError);
}
function showHideDialog(idDocument) {
$scope.$evalAsync(() => {
$scope.isDialogVisible[idDocument] = !$scope.isDialogVisible[idDocument];
});
}
}
})();