97 lines
3.4 KiB
JavaScript
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];
|
|
});
|
|
}
|
|
}
|
|
})();
|