Initial commit
This commit is contained in:
164
api-wiaas/client/js/components/orders/orders-utils.service.js
Normal file
164
api-wiaas/client/js/components/orders/orders-utils.service.js
Normal file
@@ -0,0 +1,164 @@
|
||||
(function () {
|
||||
global.dashModule.service('ordersUtilsService', ['$', '$http', '$translate', 'utilsService', ordersUtilsService]);
|
||||
|
||||
function ordersUtilsService($, $http, $translate, utilsService) {
|
||||
let maxDeliveryDate = '';
|
||||
const earliestInstallationDate = {};
|
||||
const isNextStepTheOneWanted = {};
|
||||
const callbackMethods = {};
|
||||
|
||||
return {
|
||||
hasExtraAction,
|
||||
calculatePrice,
|
||||
hasAgreement,
|
||||
setMaximumDeliveryDate,
|
||||
getEarliestInstallationDateFromDb,
|
||||
getEarliestInstallationDate,
|
||||
checkIfIsNextStepWanted,
|
||||
isComponentDisabled,
|
||||
registerOrderFunction,
|
||||
getOrderInfo
|
||||
};
|
||||
|
||||
function hasExtraAction(step) {
|
||||
return step.stepType === 'extraAction' && step.status === 'in-progress';
|
||||
}
|
||||
|
||||
function calculatePrice(values, units) {
|
||||
let total = 0;
|
||||
values.forEach((val) => {
|
||||
total += parseFloat(val);
|
||||
});
|
||||
|
||||
return units ? total * units : 0;
|
||||
}
|
||||
|
||||
function hasAgreement(packagePayPeriod, servicesContractPeriod) {
|
||||
return parseInt(packagePayPeriod) > 0 || parseInt(servicesContractPeriod) > 0;
|
||||
}
|
||||
|
||||
function setMaximumDeliveryDate(idOrder, idPackage, earliestIntallationDate) {
|
||||
const params = $.param({
|
||||
idOrder,
|
||||
idPackage,
|
||||
maxDeliveryDate: earliestIntallationDate
|
||||
});
|
||||
|
||||
if (!maxDeliveryDate) {
|
||||
maxDeliveryDate = '-';
|
||||
}
|
||||
|
||||
if (earliestIntallationDate && earliestIntallationDate !== '-') {
|
||||
maxDeliveryDate = earliestIntallationDate;
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'orders/api/setEarliestInstallationDateInDb',
|
||||
data: params
|
||||
}).then(getMaximumDeliveryDate, utilsService.onHttpError);
|
||||
}
|
||||
}
|
||||
|
||||
function getMaximumDeliveryDate(response) {
|
||||
if (typeof response.data !== 'undefined' && Object.keys(response.data).length) {
|
||||
getEarliestInstallationDateFromDb(response.data.idOrder, response.data.idPackage);
|
||||
displayMessage(response);
|
||||
|
||||
if('callConfirmationInstallationDatesFct' in response.data && response.data.callConfirmationInstallationDatesFct) {
|
||||
utilsService.executeRegisteredFunction('getConfirmationInstallationDates');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getEarliestInstallationDateFromDb(idOrder, idPackage) {
|
||||
const params = $.param({
|
||||
idOrder,
|
||||
idPackage,
|
||||
maxDeliveryDate: maxDeliveryDate[idPackage]
|
||||
});
|
||||
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'orders/api/getEarliestInstallationDate',
|
||||
data: params
|
||||
}).then(setEarliestInstallationDate, utilsService.onHttpError);
|
||||
}
|
||||
|
||||
function setEarliestInstallationDate(response) {
|
||||
if (typeof response.data !== 'undefined') {
|
||||
if (response.data.messages) {
|
||||
displayMessage(response);
|
||||
}
|
||||
if (response.data.earliestInstallationDate) {
|
||||
const paramData = {
|
||||
idPackage: response.data.idPackage,
|
||||
minDate: response.data.earliestInstallationDate
|
||||
};
|
||||
earliestInstallationDate[response.data.idOrder] = response.data.earliestInstallationDate;
|
||||
utilsService.executeRegisteredFunction('setMinDateAvailable', paramData);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getEarliestInstallationDate(idOrder) {
|
||||
return earliestInstallationDate[idOrder] || '-';
|
||||
}
|
||||
|
||||
function checkIfIsNextStepWanted(idOrder, usedForDirective, stepIds) {
|
||||
const params = $.param({
|
||||
idOrder,
|
||||
stepIds: JSON.stringify(stepIds)
|
||||
});
|
||||
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'orders/api/checkIfIsNextStepWanted',
|
||||
data: params
|
||||
}).then((response) => {
|
||||
isNextStepWanted(response, idOrder, usedForDirective);
|
||||
}, utilsService.onHttpError);
|
||||
}
|
||||
|
||||
function isNextStepWanted(response, idOrder, usedForDirective) {
|
||||
if(typeof response.data !== 'undefined') {
|
||||
if(!isNextStepTheOneWanted[usedForDirective]) {
|
||||
isNextStepTheOneWanted[usedForDirective] = {};
|
||||
}
|
||||
isNextStepTheOneWanted[usedForDirective][idOrder] = response.data;
|
||||
}
|
||||
}
|
||||
|
||||
function isComponentDisabled(idOrder, usedForDirective) {
|
||||
if(isNextStepTheOneWanted[usedForDirective] && isNextStepTheOneWanted[usedForDirective][idOrder]) {
|
||||
return isNextStepTheOneWanted[usedForDirective][idOrder];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function registerOrderFunction(key, showOrderInfo) {
|
||||
callbackMethods[key] = showOrderInfo;
|
||||
}
|
||||
|
||||
function getOrderInfo() {
|
||||
const idOrder = global.getParameterByName('idOrder') || 0;
|
||||
const params = $.param({
|
||||
idOrder
|
||||
});
|
||||
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: 'orders/api/getOrderInfo',
|
||||
data: params
|
||||
}).then(callbackMethods.showOrderInfo, utilsService.onHttpError);
|
||||
}
|
||||
|
||||
function displayMessage(response) {
|
||||
if (typeof response.data.messages !== 'undefined') {
|
||||
response.data.messages.forEach((messageObj) => {
|
||||
let translatedMessage = $translate.instant('orders.messages.' + messageObj.message);
|
||||
const messageKey = 'key' in messageObj ? ' ' + messageObj.key : '';
|
||||
utilsService.displayMessage(messageObj.code, translatedMessage + messageKey);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user